Camera2 闪光灯
在Android Camrea2中与Flash有关的只有两个字段:
- CaptureRequest.FLAH_MODE
- CaptureRequest.CONTROL_AE_MODE
所有在使用闪光灯时,必须先保证CaptureRequest.CONTROL_MODE为ATUO,而且必须保证CameraCharacteristics.FLASH_INFO_AVAILABLE == true
首先先说说CaptureRequest.FLAH_MODE,这个字段是可以由用户控制的,要使用它的话,还要保证CaptureRequest.CONTROL_AE_MODE的值为ON或者OFF,它有三个值:
- OFF:this catpure 闪光灯关闭
- SINFGLE:this capture 闪光灯打开
- TORCH:闪光灯持续打开
然后再看看CaptureRequest.CONTROL_AE_MODE,用于选择当前自动曝光模式的控件:
通过CameraCharacteristics.CONTROL_AE_AVAILABLE_MODES进行查询支持的模式。
- OFF:自动曝光停用,用户控制曝光,增益,帧时长和闪光。
- ON:标准自动曝光,闪光灯控件停用,用户可以将闪光灯设置为触发或者手电筒模式。
- ON_AUTO_FLASH:标准自动曝光,闪光灯听从HAL指令开启,以进行预拍摄和静像拍摄.不允许用户控制闪光灯的功能。在预拍摄期间可能打开闪光灯,和 如果CaptureRequest.CONTROL_CAPTURE_INTENT被设置为STILL_CAPTURE,闪光灯将一直打开。
- ON_ALWALYS_FLASH:标准自动曝光,闪光灯始终触发以进行拍摄,并听从HAL指令进行预拍摄。不允许用户控制闪光灯的功能。它类似于ON模式,在预拍摄期间可能打开闪光灯,如果CaptureRequest.CONTROL_CAPTURE_INTENT被设置为STILL_CAPTURE,闪光灯将一直打开。
- ON_AUTO_FLASH_REDEYE:标准自动曝光,闪光灯听从HAL指令开启,以进行预拍摄和静像拍摄。在预拍摄序列结束时使用闪光灯连拍,以减轻最终照片中的红眼现象