本讲是android camera专题系列的第20讲,我们介绍android camera2 api专题的sessionconfiguration详解。
更多资源:
资源 | 描述 |
---|---|
在线课程 | |
知识星球 | 星球名称:深入浅出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没用好会发生什么?