地味にハマったシリーズ。。。
CONTROL_AE_MODE と FLASH_MODE をセットしてあげる必要がある。
あと最後に capture を呼ぶのを忘れずに!!
HogeCamera.kt
fun updateFlash(isFlash: Boolean) {
// previewRequestBuilder → CaptureRequest.Builder
// previewRequest → CaptureRequest
// captureSession → CameraCaptureSession
// captureCallback → CameraCaptureSession.CaptureCallback
// backgroundHandler → Handler
previewRequestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON)
if (isFlash) {
previewRequestBuilder.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_TORCH)
} else {
previewRequestBuilder.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_OFF)
}
previewRequest = previewRequestBuilder.build()
try {
captureSession.capture(previewRequest, captureCallback, backgroundHandler)
} catch (e: CameraAccessException) {
e.printStackTrace()
}
}