我在扫描条形码项目,所以我想禁用自动对焦,以提高性能.我试过很多种方法,但根本行不通。有人能帮我一下吗?谢谢。
发布于 2021-03-24 20:29:22
如果您真的想关闭AF,可以在CameraX上使用Camera2CameraControl类来实现这一点。要做到这一点,您必须首先将所需的用例绑定到导致Camera对象的生命周期,然后可以使用该相机对象获取CameraControl对象,然后使用它实例化Camera2CameraControl,这将使您可以将焦点模式设置为CameraMetadata.CONTROL_AF_MODE_OFF。
val camera : Camera = cameraProvider.bindToLifecycle(
this,
cameraSelector,
imagePreview,
imageCapture,
imageAnalysis
)
val cameraControl : CameraControl = camera.cameraControl
val camera2CameraControl : Camera2CameraControl = Camera2CameraControl.from(cameraControl)
//Then you can set the focus mode you need like this
val captureRequestOptions = CaptureRequestOptions.Builder()
.setCaptureRequestOption(CaptureRequest.CONTROL_AF_MODE, CameraMetadata.CONTROL_AF_MODE_OFF)
.build()
camera2CameraControl.captureRequestOptions = captureRequestOptions这在最新的CameraX的"1.0.0-rc03“版本上进行了测试。
发布于 2021-06-21 09:12:54
我使用
disableAutoCancel()使用cameraX 1.0.0。一旦相机聚焦锁定,自动对焦就不会每隔X秒重新启动一次,所以类似的情况如下
val autoFocusAction = FocusMeteringAction.Builder(
autoFocusPoint,
FocusMeteringAction.FLAG_AF or
FocusMeteringAction.FLAG_AE or
FocusMeteringAction.FLAG_AWB
).apply {
disableAutoCancel()
}
}.build()
myCameraControl!!.startFocusAndMetering(autoFocusAction)https://stackoverflow.com/questions/66633338
复制相似问题