闪光灯相关
在Android Camrea2中与Flash有关的只有两个字段:
CaptureRequest.FLAH_MODE
和CaptureRequest.CONTROL_AE_MODE
所有在使用闪光灯时,必须先保证CaptureRequest.CONTROL_MODE
为ATUO,而且必须保证CameraCharacteristics.FLASH_INFO_AVAILABLE == true
CaptureRequest.FLAH_MODE
这个字段由用户控制的:
- OFF:this catpure 闪光灯关闭
- SINFGLE:this capture 闪光灯打开
- TORCH:闪光灯持续打开
CaptureRequest.CONTROL_AE_MODE选择当前自动曝光模式:
- OFF:自动曝光停用,用户控制曝光;
- ON:标准自动曝光;
- ON_AUTO_FLASH:标准自动曝光,闪光灯听从HAL指令开启,以进行预拍摄和静像拍摄.不允许用户控制闪光灯的功能;
- ON_ALWALYS_FLASH:标准自动曝光,闪光灯始终触发以进行拍摄,并听从HAL指令进行预拍摄;
- ON_AUTO_FLASH_REDEYE:标准自动曝光,闪光灯听从HAL指令开启,以进行预拍摄和静像拍摄.
预览时设置闪光灯关闭和打开
关闭:
mCaptureRequestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON);
mCaptureRequestBuilder.set(CaptureRequest.FLASH_MODE, CameraMetadata.FLASH_MODE_OFF);
打开:
mCaptureRequestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON);
mCaptureRequestBuilder.set(CaptureRequest.FLASH_MODE, CameraMetadata.FLASH_MODE_TORCH);
自动模式:
mCaptureRequestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON_AUTO_FLASH);