判断是否有闪光灯代码:
Boolean flashAvailable = characteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE);
一般打开闪光灯代码:
mCameraManager.setTorchMode(mCameraId, true);
关闭闪光灯代码:
mCameraManager.setTorchMode(mCameraId, false);
但是我在打开相机之后,在开启闪光灯,提示失败:
android.hardware.camera2.CameraAccessException: CAMERA_IN_USE (4): setTorchMode:1702: Torch for camera "0" is not available due to an existing camera user
,
原因是:camera 已经被占用。故而这种方式不可取。
另外一种方式,可以相机打开后、在开启闪光灯:
if (isStartFlash) {
mPreviewRequestBuilder.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_OFF);
mCaptureSession.setRepeatingRequest(mPreviewRequestBuilder.build(), null, null);
} else {
mPreviewRequestBuilder.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_TORCH);
mCaptureSession.setRepeatingRequest(mPreviewRequestBuilder.build(), null, null);
}