java.lang.IllegalArgumentException: 不支持的曲面组合 找到相机设备 - ID : 0。 也可能正在尝试绑定 许多用例。
为什么bindToLifecycle()
只选择imageCapture
或videoCapture
?
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)
我希望它可以帮助那里的人=(