本讲是Android Camera专题系列的第20讲,我们介绍Android Camera2 API专题的SessionConfiguration详解,包括如下四部分内容:
-
为什么要引入SessionConfiguration
-
SessionConfiguration简介
-
SessionConfiguration APIs概述
-
Session Parameter简介
视频在线观看:
加入知识星球与更多Camera同学交流
- 星球名称:深入浅出Android Camera
- 星球ID: 17296815
为什么要引入SessionConfiguration
创建Session的API越来越多
-
createCaptureSession(List
outputs, callback, Handler handler) -
createCaptureSessionByOutputConfigurations(List
outputConfigurations, callback, Handler handler) -
createConstrainedHighSpeedCaptureSession(List
outputs, callback, Handler handler) -
createReprocessableCaptureSession(InputConfiguration inputConfig, List
outputs, callback, Handler handler) -
createReprocessableCaptureSessionByConfigurations(InputConfiguration inputConfig, List
outputs,, Handler handler)
但还是无法满足需求,API28想在创建Session时能够带一包参数下去,也就是设置Session Parameter
需要一个API一统江湖
- createCaptureSession(SessionConfiguration config)
SessionConfiguration简介
SessionConfiguration是一个聚合类,将用于创建Camera Capture Session的参数都聚合在一个对象中,这些参数包括
-
Session Type(对应HAL的Operation Mode)
- 创建Regular Session还是High Speed Session
-
Session State Callback
-
Session Callback Executor(Handler)
-
输出流配置信息(OutputConfiguration)
-
输入流配置信息(InputConfiguration)
-
Session Parameters
SessionConfiguration APIs概述
Session Parameter简介
Session Parameter
-
本质是什么?
- Session Parameter本质上是一个不带Surface的CaptureRequest
-
为什么要引入?
- 只靠Stream的size、format和Operation Mode还不足以决定Session的创建,比如FPS Range会决定Sensor走哪种mode
-
如何知道Session Parameter中能设置哪些Metadata
- Cameracharacteristics#getAvailableSessionKeys
Session Parameter没用好会发生什么?