다음을 통해 공유


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

추가 정보

IAudioClient 인터페이스

IAudioClient::GetService

IAudioSessionEvents 인터페이스