2024年10月25日 第23讲 CaptureRequest详解 极客笔记
本讲是Android Camera专题系列的第23讲,我们介绍Android Camera2 API专题的CaptureRequest详解。
更多资源:
| 资源 | 描述 | 
|---|---|
| 在线课程 | 极客笔记在线课程 | 
| 知识星球 | 星球名称:深入浅出Android Camera  星球ID: 17296815  | 
| 极客笔记圈 | 
CaptureRequest可以理解为告诉Camera底层如何处理某一帧数据,包括两部分内容
ISP Processing Pipeline相关参数
3A相关参数
Output Surfaces
通过CaptureRequest.Builder来创建CaptureRequest
通过不同的方式送给Camera底层
captureBurst
setRepeatingRequest
setRepeatingBurst
CaptureRequest类型(通过Capturerequest#isReprocess()可以判断)
Reprocess:CameraDevice#createReprocessCaptureRequest
Builder模式:用于设置CaptureRequest参数和创建CaptureRequest对象
| API | Description | 
|---|---|
| set(Key | 
设置指定Key对应的Value值 | 
| setPhysicalCameraKey(Key | 
设置指定Physical Camera中Key对应的Value值 | 
| addTarget(Surface outputTarget) | 增加一路输出流 | 
| setTag(Object tag) | 给CaptureRequest设置一个TAG,用于标识该CaptureRequest,底层在onCaptureCompleted回调时,可以通过Capturerequest#getTag()获取到 | 
| build() | 创建CaptureRequest对象 | 
| get(Key | 
获取指定Key对应的Value | 
| getPhysicalCameraKey(Key | 
获取指定Physical Camera中Key对应的Value值 | 
| removeTarget(Surface outputTarget) | 删除一路输出流 | 
| API | Description | 
|---|---|
| createCaptureRequest(int templateType) | 根据Template Type创建CaptureRequest.Builder,注意:这里返回的是带一包默认值的,不同的CameraDevice,这包默认值会不一样,因此不能混用。 | 
| createCaptureRequest(int templateType,           Set | 
根据Template Type和Physical CameraID Set创建CaptureRequest.Builder,通过Builder#setPhysicalCameraKey可以设置指定Physical Camera的参数。 Physical Camera的参数只适用于有Physical Camera OutputConfiguration的情况(OutputConfiguration#setPhysicalCameraId)。 physicalCameraIdSet来自CameraCharacteristics#getPhysicalCameraIds() | 
| createReprocessCaptureRequest (TotalCaptureResult inputResult) | 根据TotalCaptureResult创建用于Reprocess的CaptureRequest.Builder | 
判断能否单独控制Logical MultiCamera中的Physical Camera
(CameraCharacteristics#getPhysicalCameraIds)
或者可以设置的Physical Camera Keys
(Cameracharacteristics#getAvailablePhysicalCameraRequestKeys)
创建Physical Camera OutputConfiguration
(OutputConfiguration#setPhysicalCameraId)
创建CaptureRequest.Builder
setPhysicalCameraKey
addTarget
获取Physical TotalCaptureResult
(TotalCaptureResult#getPhysicalCameraTotalResults )
本文链接:http://so.lmcjl.com/news/16198/