다음을 통해 공유


IAudioSessionManager2::RegisterSessionNotification 메서드(audiopolicy.h)

RegisterSessionNotification 메서드는 세션을 만들 때 알림을 받을 애플리케이션을 등록합니다.

구문

HRESULT RegisterSessionNotification(
  IAudioSessionNotification *SessionNotification
);

매개 변수

SessionNotification

애플리케이션의 IAudioSessionNotification 인터페이스 구현에 대한 포인터입니다. 메서드 호출이 성공하면 애플리케이션의 IAudioSessionNotification 인터페이스에서 AddRef 메서드를 호출합니다.

반환 값

메서드가 성공하면 S_OK가 반환되고, 실패할 경우 가능한 반환 코드는 다음 표에 표시된 값을 포함하지만 이에 국한되지 않습니다.

반환 값 설명
E_POINTER
SessionNotificationNULL입니다.
E_OUTOFMEMORY
메모리 부족으로 인해 내부 개체를 만들 수 없습니다.

설명

애플리케이션은 IAudioSessionNotification 인터페이스의 메서드를 통해 세션을 만들 때 알림을 수신하도록 등록할 수 있습니다. 애플리케이션은 IAudioSessionNotification 인터페이스를 구현합니다. 이 인터페이스에 정의된 메서드는 세션을 만들 때 시스템에서 콜백을 받습니다. 이 인터페이스를 구현하는 방법을 보여 주는 예제 코드는 다음을 참조하세요.

IAudioSessionNotification 인터페이스.

알림 수신을 시작하기 위해 애플리케이션은 IAudioSessionManager2::RegisterSessionNotification 메서드를 호출하여 IAudioSessionNotification 인터페이스를 등록합니다. 애플리케이션에 더 이상 알림이 필요하지 않으면 IAudioSessionManager2::UnregisterSessionNotification 메서드를 호출하여 등록을 삭제합니다.

중요

알림 수신을 시작하려면 IAudioSessionEnumerator::GetCount 를 호출해야 합니다. 세션 열거형 API는 애플리케이션이 기존 세션 목록을 처음 검색할 때까지 새 세션 알림을 삭제합니다. 이는 세션 API를 사용하는 애플리케이션이 시작되는 동안 세션 알림이 도착할 때 발생할 수 있는 경합 상태를 방지하기 위한 것입니다. GetCount를 호출하면 열거형 API가 트리거하여 세션 알림 보내기를 시작합니다.

참고 애플리케이션이 UI가 아닌 스레드에서 를 호출 CoInitializeEx(NULL, COINIT_MULTITHREADED) 하여 MTA(다중 스레드 아파트) 모델을 사용하여 COM을 초기화해야 합니다. MTA가 초기화되지 않은 경우 애플리케이션은 세션 관리자로부터 세션 알림을 받지 않습니다. 애플리케이션의 사용자 인터페이스를 실행하는 스레드는 아파트 스레딩 모델을 초기화해야 합니다.
 

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 7 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 R2 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 audiopolicy.h

추가 정보

IAudioSessionManager2