IAudioSessionEvents::OnSessionDisconnected 메서드(audiopolicy.h)
OnSessionDisconnected 메서드는 클라이언트에 오디오 세션의 연결이 끊어졌는지 알 수 있습니다.
구문
HRESULT OnSessionDisconnected(
[in] AudioSessionDisconnectReason DisconnectReason
);
매개 변수
[in] DisconnectReason
오디오 세션의 연결이 끊어진 이유입니다. 호출자는 다음 표에 표시된 AudioSessionDisconnectReason 열거형 값 중 하나로 이 매개 변수를 설정합니다.
값 | Description |
---|---|
DisconnectReasonDeviceRemoval | 사용자가 오디오 엔드포인트 디바이스를 제거했습니다. |
DisconnectReasonServerShutdown | Windows 오디오 서비스가 중지되었습니다. |
DisconnectReasonFormatChanged | 오디오 세션이 연결된 디바이스의 스트림 형식이 변경되었습니다. |
DisconnectReasonSessionLogoff | 사용자가 오디오 세션이 실행 중인 WTS(Windows 터미널 Services) 세션을 로그오프했습니다. |
DisconnectReasonSessionDisconnected | 오디오 세션이 실행 중인 WTS 세션의 연결이 끊어졌습니다. |
DisconnectReasonExclusiveModeOverride | 오디오 엔드포인트 디바이스를 단독 모드 연결에 사용할 수 있도록 (공유 모드) 오디오 세션의 연결이 끊어졌습니다. |
WTS 세션에 대한 자세한 내용은 Windows SDK 설명서를 참조하세요.
반환 값
메서드가 성공하면 S_OK가 반환되고, 그렇지 않으면 오류 코드가 반환됩니다.
설명
세션 연결을 끊을 때 세션 관리자는 해당 세션에 속한 스트림을 닫고 해당 스트림의 서비스에 대한 모든 미해결 요청을 무효화합니다. 클라이언트는 닫힌 스트림에 대한 IAudioClient 인터페이스에 대한 모든 참조를 해제하고 IAudioClient::GetService 메서드 호출을 통해 이전에 가져온 서비스 인터페이스에 대한 모든 참조를 해제하여 연결 끊김에 응답해야 합니다.
연결이 끊긴 후 연결이 끊긴 세션의 닫힌 스트림에 연결된 WASAPI 인터페이스의 많은 메서드는 오류 코드 AUDCLNT_E_DEVICE_INVALIDATED 반환합니다(예: IAudioClient::GetCurrentPadding 참조). 이 오류에서 복구하는 방법에 대한 자세한 내용은 Invalid-Device 오류에서 복구를 참조하세요.
Windows 오디오 서비스가 예기치 않게 종료되는 경우 클라이언트에 종료 중임을 알릴 기회가 없습니다. 이 경우 클라이언트는 서비스가 더 이상 실행되지 않고 오류 코드 AUDCLNT_E_SERVICE_NOT_RUNNING 실패 하는 IAudioClient::GetCurrentPadding 과 같은 메서드를 호출할 때 서비스가 중지되었음을 알게 됩니다.
클라이언트는 세션 연결이 끊긴 이벤트를 생성할 수 없습니다. 시스템은 항상 이러한 유형의 이벤트의 원본입니다. 따라서 다른 IAudioSessionEvents 메서드와 달리 이 메서드에는 컨텍스트 매개 변수가 없습니다.
IAudioSessionEvents 인터페이스에서 메서드를 구현하는 코드 예제는 오디오 세션 이벤트를 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | audiopolicy.h |