一、概述
CameraDevice的已配置捕获会话,用于从相机捕获图像或重新处理之前在同一会话中从相机捕获的图像。
CameraCaptureSession是通过向android.hardware.camerra2.CameraDevice#createCaptureSession提供一组目标输出表面或提供android.hard ware.camera2.params.InputConfiguration和一组目标输出表面,用于为可重新处理的捕获会话createReprocessableCaptureSession。创建后,会话处于活动状态,直到相机设备创建新会话或关闭相机设备。
所有捕获会话均可用于从相机捕获图像,但只有可重新处理的捕获会话才能重新处理之前在同一会话中从相机捕获的图像。
创建会话是一项昂贵的操作,可能需要几百毫秒,因为它需要配置相机设备的内部管道并分配内存缓冲区,以便将图像发送到所需的目标。因此,设置是异步完成的,android.human.chamera2.CameraDevice#createCaptureSession和createReprocessableCaptureSession将把准备使用的CameraCaptureSession发送到提供的监听器的onConfigured回调。如果配置无法完成,则调用onConfigureFailed,会话将不会处于活动状态。
如果相机设备创建了新会话,则关闭前一个会话,并调用其关联的onClosed回调。如果在会话关闭后调用,所有会话方法都将抛出IllegalStateException。
关闭的会话会清除所有重复的请求(就像调用了stopRepeating一样),但在新创建的会话接管并重新配置相机设备之前,它仍将正常完成所有正在进行的捕获请求。
二、API
1、内部类
| 内部类 | |
|---|---|
| abstract | 一个回调对象,用于跟踪提交到相机设备的CaptureRequest的进度。 |
| abstract | 一个回调对象,用于接收有关相机捕获会话状态的更新。 |
2、构造方法
CameraCaptureSession()
3、public方法
abstract fun abortCaptures(): Unit
未完待续。。。
参考文章
3603

被折叠的 条评论
为什么被折叠?



