1

我正在使用 3-rd 方库 (boofCV) 在 Android 中使用相机。他们打开相机时没有明显的握持方式:

CameraManager manager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
manager.openCamera(cameraId, mStateCallback, null);

我需要在相机上添加一个手电筒,但是当我使用此代码时:

cameraManager.setTorchMode(cameraId, true)

我得到了错误:

CameraAccessException: android.hardware.camera2.CameraAccessException: CAMERA_IN_USE (4): setTorchMode:2122: Torch for camera "0" is not available due to an existing camera user.

如果我尝试使用这个 API < M 代码:

    val camera = Camera.open()
    val params = camera.parameters
    params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH)
    camera.setParameters(params)
    camera.startPreview()

由于相机已打开,我也收到错误消息:

E/CameraCaptureSession: Session 0: Exception while stopping repeating: 
    android.hardware.camera2.CameraAccessException: CAMERA_DISCONNECTED (2): checkPidStatus:2193: The camera device has been disconnected

那么,在这种情况下,我怎样才能让相机源打开/关闭手电筒呢?

更新:嗯,我什至尝试重写库的代码并添加

manager.setTorchMode(cameraId, true);

manager.openCamera(cameraId, mStateCallback, null);

但只得到了短暂的闪光。

4

0 回答 0