CameraXで継続的なオートフォーカスが停止する問題
AndroidのCameraXを利用していて何かをきっかけに継続的に動作しているオートフォーカスが停止してしまうことがありました。特に背面カメラでプレビューしている時にカメラを下に伏せて置いた後、持ち上げるとプレビューがぼやけたまま停止するケースが頻度が高いように感じました。
もしかするとスマホ(GalaxyS9)に依存した問題なのかもしれませんが、問題が解消した方法を共有しておきます。
CameraFragment.kt
@SuppressLint("UnsafeOptInUsageError") // ←追記
private fun bindCameraUseCases() {
// 以上省略
// A variable number of use-cases can be passed here -
// camera provides access to CameraControl & CameraInfo
camera = cameraProvider.bindToLifecycle(
this, cameraSelector, preview, imageCapture, imageAnalyzer)
// ここから追加
val camera2CameraControl = Camera2CameraControl.from(camera!!.cameraControl)
// dynamically changes the parameters.
camera2CameraControl.captureRequestOptions =
CaptureRequestOptions.Builder()
.setCaptureRequestOption(
CaptureRequest.CONTROL_AF_MODE,
CameraMetadata.CONTROL_AF_MODE_CONTINUOUS_VIDEO
).build()
// ここまで追加
// 以下省略
元にしたプロジェクト
以下のCameraXBasic