Close this capture session asynchronously.
Closing a session frees up the target output Surfaces of the session for reuse with either a new session, or to other APIs that can draw to Surfaces.
Note that creating a new capture session with CameraDevice.createCaptureSession(java.util.List<android.view.Surface>, android.hardware.camera2.CameraCaptureSession.StateCallback, android.os.Handler) will close any existing capture session automatically, and call the older session listener's NoType:android/hardware/camera2/CameraCaptureSession$StateCallback;Href=../../../../reference/android/hardware/camera2/CameraCaptureSession.StateCallback.html#onClosed(android.hardware.camera2.CameraCaptureSession) callback. Using CameraDevice.createCaptureSession(java.util.List<android.view.Surface>, android.hardware.camera2.CameraCaptureSession.StateCallback, android.os.Handler) directly without closing is the recommended approach for quickly switching to a new session, since unchanged target outputs can be reused more efficiently.
Once a session is closed, all methods on it will throw an IllegalStateException, and any repeating requests or bursts are stopped (as if CameraCaptureSession.StopRepeating was called). However, any in-progress capture requests submitted to the session will be completed as normal; once all captures have completed and the session has been torn down, NoType:android/hardware/camera2/CameraCaptureSession$StateCallback;Href=../../../../reference/android/hardware/camera2/CameraCaptureSession.StateCallback.html#onClosed(android.hardware.camera2.CameraCaptureSession) will be called.
Closing a session is idempotent; closing more than once has no effect.