android 摄像机打开时打开手电筒

c7rzv4ha  于 2023-06-20  发布在  Android
关注(0)|答案(1)|浏览(207)

我需要打开手电筒当相机是开放的。

  1. class FlashLight(private val context: Context) {
  2. private val cameraManager by lazy { context.getSystemService(Context.CAMERA_SERVICE) as CameraManager }
  3. private val backCameraId by lazy { cameraManager.cameraIdList[0] }
  4. fun turnOnFlashLight() = changeFlashStatus(shouldBeTurnedOn = true)
  5. fun turnOffFlashLight() = changeFlashStatus(shouldBeTurnedOn = false)
  6. private fun changeFlashStatus(shouldBeTurnedOn: Boolean) {
  7. try {
  8. cameraManager.setTorchMode(backCameraId, shouldBeTurnedOn)
  9. } catch (e: Exception){
  10. L.e(e)
  11. }
  12. }
  13. }

我的代码在相机关闭时工作,但当我在应用程序内运行相机并希望打开手电筒时,我得到错误:
android.hardware.camera2.CameraAccessException:CAMERA_IN_USE(4):setTorchMode:2325:相机“0”的手电筒不可用

dxpyg8gm

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

相关问题