다음을 통해 공유


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

RegisterDuckNotification 메서드는 더킹 알림을 수신하기 위해 애플리케이션을 세션 관리자에 등록합니다.

구문

HRESULT RegisterDuckNotification(
  LPCWSTR                      sessionID,
  IAudioVolumeDuckNotification *duckNotification
);

매개 변수

sessionID

세션 instance 식별자를 포함하는 null로 끝나는 문자열에 대한 포인터입니다. 미디어 스트림을 재생하고 사용자 지정 스트림 감쇠 또는 더킹 동작을 제공하려는 애플리케이션은 자체 세션 instance 식별자를 전달합니다. 자세한 내용은 설명 부분을 참조하세요.

스트림을 변경하지 않고 모든 더킹 알림을 받으려는 다른 애플리케이션은 NULL을 통과해야 합니다.

duckNotification

애플리케이션의 IAudioVolumeDuckNotification 인터페이스 구현에 대한 포인터입니다. 구현은 오디오 시스템에 의해 더킹 이벤트가 발생하고 알림이 등록된 애플리케이션으로 전송될 때 호출됩니다.

반환 값

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

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

설명

Stream 감쇠 또는 더킹은 Windows 7의 새로운 기능입니다. 미디어 스트림을 재생하는 애플리케이션은 기본 통신 디바이스에서 새 통신 스트림이 열릴 때 스트림이 다르게 작동하도록 할 수 있습니다. 예를 들어 새 통신 스트림이 열려 있는 동안 원래 미디어 스트림을 일시 중지할 수 있습니다. 스트림 감쇠에 대한 이 사용자 지정 구현을 제공하기 위해 애플리케이션은 IAudioSessionControl::SetDuckingPreference 를 호출하여 기본 스트림 감쇠 환경을 옵트아웃한 다음 세션 이벤트가 발생할 때 알림을 받도록 자신을 등록할 수 있습니다. 스트림 감쇠의 경우 기본 통신 디바이스에서 통신 스트림을 열거나 닫을 때 시스템에서 세션 이벤트가 발생합니다. 이 기능에 대한 자세한 내용은 더킹 이벤트 가져오기를 참조하세요.

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

애플리케이션은 IAudioVolumeDuckNotification 인터페이스의 메서드를 통해 더킹 이벤트에 대한 알림을 받습니다. 애플리케이션은 IAudioVolumeDuckNotification을 구현합니다. 등록 호출이 성공하면 시스템은 세션 이벤트가 발생할 때 이 인터페이스의 메서드를 호출합니다.

요구 사항

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

추가 정보

IAudioSessionManager2

통신 디바이스 사용