CameraCaptureSession.Close 方法

定义

异步关闭此捕获会话。

[Android.Runtime.Register("close", "()V", "GetCloseHandler")]
public abstract void Close ();
[<Android.Runtime.Register("close", "()V", "GetCloseHandler")>]
abstract member Close : unit -> unit

实现

属性

注解

异步关闭此捕获会话。

关闭会话可以释放会话的目标输出 Surfaces,以便通过新会话或可绘制到 Surface 的其他 API 重复使用。

请注意,对于常见使用方案(例如创建新会话或关闭相机设备),无需调用此方法即可更快地调用相应的 API(请参阅下文以了解更多详细信息)。 仅当应用程序想要取消配置相机但使设备保持打开状态以供以后使用时,此 API 才很有用。

创建新的捕获会话,该 CameraDevice#createCaptureSession 会话将自动关闭任何现有捕获会话,并调用旧会话侦听器的 StateCallback#onClosed 回调。 建议在不关闭的情况下直接使用 CameraDevice#createCaptureSession ,以便快速切换到新会话,因为可以更有效地重复使用未更改的目标输出。

建议使用直接不调用此 API 关闭设备 CameraDevice#close ,以便快速关闭相机。

会话关闭后,其上的所有方法都会引发 IllegalStateException,并且停止任何重复的请求或突发(就好像 #stopRepeating() 被调用了)。 但是,提交到会话的任何正在进行的捕获请求将按正常方式完成;完成所有捕获并且会话已拆毁后, StateCallback#onClosed 将调用。

关闭会话是幂等的;关闭多次不起作用。

适用于 . 的 android.hardware.camera2.CameraCaptureSession.close()Java 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

适用于