我正在使用 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);
但只得到了短暂的闪光。