我需要打开手电筒当相机是开放的。
class FlashLight(private val context: Context) {
private val cameraManager by lazy { context.getSystemService(Context.CAMERA_SERVICE) as CameraManager }
private val backCameraId by lazy { cameraManager.cameraIdList[0] }
fun turnOnFlashLight() = changeFlashStatus(shouldBeTurnedOn = true)
fun turnOffFlashLight() = changeFlashStatus(shouldBeTurnedOn = false)
private fun changeFlashStatus(shouldBeTurnedOn: Boolean) {
try {
cameraManager.setTorchMode(backCameraId, shouldBeTurnedOn)
} catch (e: Exception){
L.e(e)
}
}
}
我的代码在相机关闭时工作,但当我在应用程序内运行相机并希望打开手电筒时,我得到错误:
android.hardware.camera2.CameraAccessException:CAMERA_IN_USE(4):setTorchMode:2325:相机“0”的手电筒不可用
1条答案
按热度按时间dxpyg8gm1#
如果要在与相机的同一会话中启用 Torch 。您可以使用此键启用闪光模式
https://developer.android.com/reference/android/hardware/camera2/CaptureRequest#FLASH_MODE 并将值设置为https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#FLASH_MODE_TORCH