Flutter相机拍照时间过长

4
我正在尝试使用官方的Flutter相机包,但是无论选择哪个分辨率,拍照方法都需要很长时间(大约3-5秒)。有没有办法加快速度?我正在使用Pixel 5作为开发设备。目前,我向用户显示一条消息,告诉他们在拍照时保持静止,但这感觉不好。编辑:我将图片格式从yuv420降级为jpeg,速度略有提升。
2个回答

1

你能展示一下如何使用CamerAwesome包的一个小例子吗? - Simas Joneliunas

1

更新。 要使其真正即时,代码应该像这样:

//final AutoFocusFeature autoFocusFeature = cameraFeatures.getAutoFocus();
//final boolean isAutoFocusSupported = autoFocusFeature.checkIsSupported();
//if (isAutoFocusSupported && autoFocusFeature.getValue() == FocusMode.auto) {
//  runPictureAutoFocus();
//} else {
//  runPrecaptureSequence();
//}
takePictureAfterPrecapture();

在我的情况下(Google Pixel 3,Google Pixel 7),尽管相机已经在预览模式下对焦,但当你拍照时它会再次对焦,并且通常需要1到几秒钟才能完成,这使得插件在生产中无用。(顺便说一句,我试图从另一方面解决这个问题,使用图像流,速度非常快,但在那种模式下图像质量要低得多,似乎是另一个问题。)
我找到了一个解决办法,虽然这个问题在相机0.10.5+2中仍然存在。
我修改了Camera.java文件中的takePicture方法。只是在末尾注释掉了3行代码。
//if (isAutoFocusSupported && autoFocusFeature.getValue() == FocusMode.auto) {
//  runPictureAutoFocus();
//} else {
  runPrecaptureSequence();
//}

现在预览期间自动对焦功能已经可用,当您调用takePicture时,在大多数情况下它会立即返回。虽然不是总是如此,但比以前好得多。现在可以使用了。
(要做到这一点,您需要将this package复制到本地,修改文件,然后将此部分添加到您的pubspec.yaml文件中:)
dependency_overrides:
  camera_android:
    path: ../camera_android

不要忘记检查本地副本的路径。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接