use*_*059 5 android flashlight camera2
我可以在 Android Camera2 API 中同时使用相机预览和手电筒吗?
当我尝试使用CameraManager.setTorchMode(String cameraId, boolean enabled)它时,当相机未打开时它工作正常。但是当相机打开时我尝试setTorchMode我收到这个异常:
CameraService: setTorchMode: 相机 0 的手电筒模式不可用,因为相机正在使用中
设置 FLASH_MODE 和 AE_MODE 很重要。下面是工作代码:
public void toggleFlashMode(boolean enable){
try {
if (mCameraType.equals(CameraType.BACK)) {
if (enable) {
mPreviewRequestBuilder.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_TORCH);
mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON);
} else {
mPreviewRequestBuilder.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_OFF);
mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_OFF);
}
mCaptureSession.setRepeatingRequest(mPreviewRequestBuilder.build(), null, null);
}
} catch (CameraAccessException e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
不,它们是相互排斥的。
相机设备需要在相机打开时对闪光灯进行独占控制,以确保其能够根据拍照等需要进行闪光。
如果您想在相机打开时打开手电筒,请使用相机 API 的闪光模式设置。对于新的camera2 API,即将自动曝光模式设置为ON ( CONTROL_AE_MODE_ON ),将闪光模式设置为TORCH ( FLASH_MODE_TORCH )。对于旧的相机 API,那就是Parameters.setFlashMode。
| 归档时间: |
|
| 查看次数: |
11168 次 |
| 最近记录: |