flutter - 流式传输时 Flutter camera 0.8.1 闪烁
问题描述
有没有办法让相机 0.8.1 从我的相机流式传输以处理帧并在流式传输时保持闪光灯打开?在 windows 上工作并在 android 上运行
相机 0.8.1 的示例并没有真正让我知道如何设置 flashmode 状态。但我仍然是一个新手,所以很可能会错过它。谢谢你。得到这个错误 ══╡ 小部件库发现异常╞══════════════════════════════════␕══════════ ═════════════════════ 以下NoSuchMethodError被抛出附加到渲染树:方法'setFlashMode'在null上被调用。接收方:null 尝试调用:setFlashMode(“FlashMode”实例)
当抛出异常时,这是堆栈:#0 Object.noSuchMethod (dart:core-patch/object_patch.dart:54:5) #1 _CameraAppState.initState (package:cameratest/main.dart:26:13) # 2 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4632:57) #3 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4469:5) #4 Element.inflateWidget (package :flutter/src/widgets/framework.dart:3541:14) #5 Element.updateChild (package:flutter/src/widgets/framework.dart:3306:18) #6 RenderObjectToWidgetElement._rebuild (package:flutter/src/widgets /binding.dart:1182:16) #7 RenderObjectToWidgetElement.mount (package:flutter/src/widgets/binding.dart:1153:5) #8 RenderObjectToWidgetAdapter.attachToRenderTree。(包:flutter/src/widgets/binding.dart:1095:18)#9 BuildOwner。buildScope (package:flutter/src/widgets/framework.dart:2647:19) #10 RenderObjectToWidgetAdapter.attachToRenderTree (package:flutter/src/widgets/binding.dart:1094:13) #11 WidgetsBinding.attachRootWidget (package:flutter/ src/widgets/binding.dart:934:7) #12 WidgetsBinding.scheduleAttachRootWidget。(package:flutter/src/widgets/binding.dart:915:7)(从_RawReceivePortImpl类、_Timer类、dart:async和dart:async-patch中删除了11帧)我现在的代码是为了预览并希望在应用程序启动时启动闪光灯。
import 'dart:async';
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:camera/camera.dart';
List<CameraDescription> cameras;
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
cameras = await availableCameras();
_cameraController.setFlashMode(FlashMode.always);
runApp(CameraApp());
}
class CameraApp extends StatefulWidget {
@override
_CameraAppState createState() => _CameraAppState();
}
class _CameraAppState extends State<CameraApp> {
CameraController controller;
@override
void initState() {
super.initState();
controller = CameraController(cameras[0], ResolutionPreset.max);
controller.initialize().then((_) {
if (!mounted) {
return;
}
setState(() {
});
});
}
@override
void dispose() {
controller?.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
if (!controller.value.isInitialized) {
return Container();
}
return MaterialApp(
home: CameraPreview(controller),
);
}
}
解决方案
您可以使用相机控制器设置闪光模式 像这样使用它
CameraController _cameraController;
List<CameraDescription> cameras=await availableCameras();
controller = CameraController(cameras[0], ResolutionPreset.max);
_cameraController.setFlashMode(FlashMode.always);
_cameraController.setFlashMode(FlashMode.always);
并将控制器分配给相机预览
CameraPreview(_cameraController)
推荐阅读
- sql - 如果日期没有记录,如何在sql中的日期范围之间生成行?
- c++ - 检查哈希表中的重复项
- reactjs - Svg 路径在 React Spring 动画库中没有动画
- php - 引导面板不显示
- c++ - 以十六进制从 QByteArray 获取 imei
- django - Redux-Saga 将 headers 传递给 axios.post 调用
- objective-c - (Mac) 尝试使用回调从 USB 设备读取输入 - 输入值混淆并需要 NSLog 才能使代码正常工作
- java - 我需要一个程序来对整数数组进行交替排序,但它给了我一个 StackOverflow 错误
- php - 在 MacOS 上安装带扩展的 php 7.2,带扩展,不带 Homebrew
- python - 如何将数字分成三个连续的部分,使得第三部分是其他两个部分的总和?