다음을 통해 공유


CameraCaptureSession.Close 메서드

정의

이 캡처 세션을 비동기적으로 닫습니다.

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

구현

특성

설명

이 캡처 세션을 비동기적으로 닫습니다.

세션을 닫으면 새 세션 또는 Surface에 그릴 수 있는 다른 API에서 다시 사용할 수 있도록 세션의 대상 출력 Surface가 해제됩니다.

새 세션을 만들거나 카메라 디바이스를 닫는 것과 같은 일반적인 사용 시나리오의 경우 이 메서드를 호출하지 않고 해당 API를 직접 호출하는 것이 더 빠릅니다(자세한 내용은 아래 참조). 이 API는 애플리케이션이 카메라를 구성 해제하지만 나중에 사용할 수 있도록 디바이스를 열어 두려는 경우에만 유용합니다.

새 캡처 세션을 CameraDevice#createCaptureSession 만들면 기존 캡처 세션이 자동으로 닫히고 이전 세션 수신기의 StateCallback#onClosed 콜백을 호출합니다. 변경되지 않은 대상 출력을 보다 효율적으로 재사용할 수 있으므로 닫지 않고 직접 사용하는 CameraDevice#createCaptureSession 것이 새 세션으로 빠르게 전환하는 데 권장되는 방법입니다.

이 API를 호출하지 않고 직접 디바이스를 CameraDevice#close 닫는 것도 카메라를 빠르게 닫는 데 권장됩니다.

세션이 닫히고 나면 세션의 모든 메서드가 IllegalStateException을 throw하고 반복 요청 또는 버스트가 중지됩니다(호출된 것처럼 #stopRepeating() ). 그러나 세션에 제출된 진행 중인 캡처 요청은 정상적으로 완료됩니다. 모든 캡처가 완료되고 세션이 중단 StateCallback#onClosed 되면 호출됩니다.

세션을 닫는 것은 idempotent입니다. 두 번 이상 닫는 것은 효과가 없습니다.

에 대한 android.hardware.camera2.CameraCaptureSession.close()Java 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

적용 대상