首页 > 解决方案 > Flutter 中的变焦相机

问题描述

我正在使用此库来显示相机(https://pub.dev/packages/camera),但是,我想在相机启动之前为其设置预定义的缩放值,但我无法确定我可以使用这个库在哪里设置它。

有谁知道该怎么做?

这是我到目前为止得到的代码

import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:camera/camera.dart';

class CameraPage extends StatefulWidget {
  @override
  _CameraPageState createState() => _CameraPageState();
}

class _CameraPageState extends State<CameraPage> {
  List<CameraDescription> cameras;
  CameraController controller;

  @override
  void initState() {
    // TODO: implement initState
    super.initState();

    buscarCameras();
  }

  Future<void> buscarCameras() async {
    cameras = await availableCameras();
    controller = CameraController(cameras[0], ResolutionPreset.medium);
    controller.initialize().then((_) {
      if (!mounted) {
        return;
      }
      setState(() {});
    });


}

  @override
  Widget build(BuildContext context) {

    if(controller == null || controller.value == null)
      return Center(
        child: CircularProgressIndicator(),
      );

    if (!controller.value.isInitialized) {
      return Container();
    }
    return AspectRatio(
        aspectRatio: controller.value.aspectRatio,
        child: CameraPreview(controller));
  }
}

标签: fluttercamerazooming

解决方案


从Camera 版本 0.6.2开始,Flutter 添加了缩放支持。您可以cameraController.setZoomLevel(4.0);在代码中使用来调整缩放级别。

还有其他有用的功能,例如cameraControl.getMaxZoomLevel();查找缩放级别的限制。

在撰写本文时,没有任何关于此功能的文档,因为它是最新的,但您可以查看相机控制器的代码以查看可用的方法。


推荐阅读