CameraX.bindToLifecycle() 发生错误



java.lang.IllegalArgumentException: 不支持的曲面组合 找到相机设备 - ID : 0。 也可能正在尝试绑定 许多用例。

为什么bindToLifecycle()只选择imageCapturevideoCapture

 CameraX.bindToLifecycle(lifecycleOwner, mPreview, imageCapture,videoCapture)

您绑定的用例比设备相机支持的用例多。并非所有设备都可以支持两个图像分析器。

尝试减少分析仪,

CameraX.bindToLifecycle(lifecycleOwner, mPreview, imageCapture or videoCapture)

我已经用许多设备进行了测试,到目前为止,在我测试的设备中,只有谷歌 Pixel 1 可以与三个分析仪配合使用。

要提出黑客建议,请删除 imageCapture 分析器,尝试从预览中获取图像以进行 imageCapture 并使用 videoCapture。

希望对您有所帮助。

我在从

后堆弹出带有相机视图的片段时遇到了同样的错误,我通过在视图退出时解除绑定所有分析器来修复它。

CameraX.unbindAll()

正如这里所建议的。

解决方法是将"预览">"视频捕获"绑定,并将"预览"与"图像捕获"分别绑定。绑定预览图像捕获和视频捕获目前在一些设备上似乎是一个问题。在两者之间切换时,请注意先解除绑定。

这可能是因为从1.0.0-Beta10开始,VideoCapture UseCase尚未得到官方支持。

fun startVideoCapture() {
        ...
                cameraProvider.unbindAll()
                cameraProvider.bindToLifecycle(
                                lifecycleOwner,
                                cameraSelected,
                                previewUseCase,
                                videoCaptureUseCase
                            )
                }
fun startImageCapture() {
        ...
                cameraProvider.unbindAll()
                cameraProvider.bindToLifecycle(
                                lifecycleOwner,
                                cameraSelected,
                                previewUseCase,
                                imageCaptureUseCase
                            )
                }
<</div> div class="one_answers">

目前没有videoCapture用例。

如官方文档所述,可用的用例是预览,分析和图像捕获(及其组合(。

当我尝试创建图像捕获,视频捕获,mPreview或彼此之间具有不同设置的分析器时,我遇到了相同的错误。

尝试在构建器中设置相同的参数,例如,如果需要:

setLensFacing(CameraX.LensFacing.BACK)

在所有设置构建器中设置相同。这可以修复您的错误,但仍然不知道库是否支持此功能喷气机。

正如Ye Min Htut指出的那样,考虑更少的用例。对我来说,这已经足够了:

CameraX.bindToLifecycle(viewLifecycleOwner, cameraSelector)

我希望它可以帮助那里的人=(

最新更新