这是我参与11月更文挑战的第7天,活动详情查看:2021最后一次更文挑战
一、 CaptureRequest
CaptureRequest 表示的是一个捕获的请求。可以创建不同的捕获请求,配置不同的捕获属性来处理不同场景下的情况。如:对焦模式、曝光模式,预览分辨率,预览目标。
二、获取实例
通过 CameraDevice 对象的 createCaptureRequest() 方法得到一个 CaptureRequest.Builder 对象,最后通过 CaptureRequest.Builder 对象的 build() 方法便可得到 CaptureRequest 实例。
三、内部类
1. CaptureRequest.Builder
获取:
使用 CameraDevice.createCaptureRequest(int) 方法获取一个 CaptureRequest.Builder 对象。其中的 int 取值为:
TEMPLATE_PREVIEW : 用于创建一个相机预览请求。相机会优先保证高帧率而不是高画质。适用于所有相机设备。
TEMPLATE_STILL_CAPTURE : 用于创建一个拍照请求。相机会优先保证高画质而不是高帧率。适用于所有相机设备。
TEMPLATE_RECORD : 用于创建一个录像请求。相机会使用标准帧率,并设置录像级别的画质。适用于所有相机设备。
方法
void addTarget(Surface outputTarget): 添加一个请求的输出surface,注意这个surface必须包含在 CameraDevice.createCaptureSession() 方法设置的输出surface集合中。
四、常用字段
用于 CaptureRequest.Builder 的 set() 方法。
CONTROL_AE_LOCK :自动曝光(AE)现在是否锁定为其最新计算值
CONTROL_AE_MODE : 相机自动曝光程序所需的模式
CONTROL_AF_MODE : 自动对焦(AF)当前是否启用,以及设置为何种模式
CONTROL_AF_REGIONS : 用于自动聚焦的测光区域列表
CONTROL_AWB_LOCK : 自动白平衡(AWB)现在是否锁定为其最新计算值
CONTROL_AWB_MODE : 自动白平衡(AWB)当前是否设置颜色转换字段,以及它的光照目标是什么
CONTROL_MODE : 整个3A控制程序模式