第20讲 SessionConfiguration详解 - Android Camera2 API

本讲是Android Camera专题系列的第20讲,我们介绍Android Camera2 API专题的SessionConfiguration详解。

更多资源:

资源 描述
在线课程 极客笔记在线课程
知识星球 星球名称:深入浅出Android Camera
星球ID: 17296815
Wechat 极客笔记圈

为什么要引入SessionConfiguration

创建Session的API越来越多

  1. createCaptureSession(List outputs, callback, Handler handler)

  2. createCaptureSessionByOutputConfigurations(List outputConfigurations, callback, Handler handler)

  3. createConstrainedHighSpeedCaptureSession(List outputs, callback, Handler handler)

  4. createReprocessableCaptureSession(InputConfiguration inputConfig, List outputs, callback, Handler handler)

  5. createReprocessableCaptureSessionByConfigurations(InputConfiguration inputConfig, List outputs,, Handler handler)

但还是无法满足需求,API28想在创建Session时能够带一包参数下去,也就是设置Session Parameter

需要一个API一统江湖

  • createCaptureSession(SessionConfiguration config)

SessionConfiguration简介

SessionConfiguration是一个聚合类,将用于创建Camera Capture Session的参数都聚合在一个对象中,这些参数包括

  1. Session Type(对应HAL的Operation Mode)
    • 创建Regular Session还是High Speed Session
  2. Session State Callback

  3. Session Callback Executor(Handler)

  4. 输出流配置信息(OutputConfiguration)

  5. 输入流配置信息(InputConfiguration)

  6. Session Parameters

SessionConfiguration APIs概述

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没用好会发生什么?

Session Parameter没用好会发生什么?

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

Android Camera2 API