本讲是Android Camera专题系列的第22讲,我们介绍Android Camera2 API专题的Session Parameter实战。
更多资源:
资源 | 描述 |
---|---|
在线课程 | 极客笔记在线课程 |
知识星球 | 星球名称:深入浅出Android Camera 星球ID: 17296815 |
极客笔记圈 |
如何避免re-configure session
对App而言(创建Session时带上Session Parameter)
- 获取Available Session Keys
-
如果Session Keys不为Null,创建Session时将这些Session Keys进行赋值,并尽量保持Session使用过程中不去更改
对HAL而言
-
防止三方App发生re-configuration
-
使用Vendor Tag来定义Session Parameter,不要在默认的CaptureRequest里面带Session Keys
Camera App使用Session Parameter
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
mSessionConfiguration = new SessionConfiguration(
is_video_high_speed ?
SessionConfiguration.SESSION_HIGH_SPEED : SessionConfiguration.SESSION_REGULAR,
outputConfigurations,
new CameraTestUtils.HandlerExecutor(mCameraBackgroundHandler),
myStateCallback
);
if (inputConfiguration != null) {
mSessionConfiguration.setInputConfiguration(inputConfiguration);
}
mSessionConfiguration.setSessionParameters(mPreviewBuilder.build());
mCameraDevice.createCaptureSession(mSessionConfiguration);
}