Share via


IAudioEndpointVolumeCallback 인터페이스(endpointvolume.h)

IAudioEndpointVolumeCallback 인터페이스는 오디오 엔드포인트 디바이스의 볼륨 수준 및 음소거 상태 변경에 대한 알림을 제공합니다. WASAPI 시스템 구성 요소에 의해 구현되는 이 섹션의 다른 인터페이스와 달리 EndpointVolume API 클라이언트는 IAudioEndpointVolumeCallback 인터페이스를 구현합니다. 이벤트 알림을 수신하기 위해 클라이언트는 IAudioEndpointVolumeCallback 인터페이스에 대한 포인터를 IAudioEndpointVolume::RegisterControlChangeNotify 메서드에 전달합니다.

IAudioEndpointVolumeCallback 인터페이스를 등록한 후 클라이언트는 인터페이스의 OnNotify 메서드를 통해 콜백 형식으로 이벤트 알림을 받습니다. 이러한 이벤트 알림은 다음 방법 중 하나로 인해 엔드포인트 디바이스의 볼륨 수준 또는 음소거 상태가 변경되는 경우에 발생합니다.

오디오 엔드포인트 디바이스가 하드웨어 볼륨을 구현하고 컨트롤을 음소거하는 경우 IAudioEndpointVolume 인터페이스는 하드웨어 컨트롤을 사용하여 디바이스의 볼륨을 관리합니다. 그렇지 않으면 IAudioEndpointVolume 인터페이스는 볼륨을 구현하고 소프트웨어에서 컨트롤을 클라이언트에 투명하게 음소거합니다.

디바이스에 하드웨어 볼륨 및 음소거 컨트롤이 있는 경우 이전 목록의 메서드를 통해 볼륨 및 음소거 설정을 변경하면 공유 모드와 배타 모드 모두에서 디바이스 볼륨에 영향을 줍니다. 디바이스에 하드웨어 볼륨 및 음소거 컨트롤이 없는 경우 이러한 방법을 통해 소프트웨어 볼륨 및 음소거 컨트롤을 변경하면 공유 모드에서 디바이스 볼륨에 영향을 주지만 배타 모드에서는 영향을 받지 않습니다. 전용 모드에서 클라이언트와 디바이스는 소프트웨어 컨트롤을 우회하여 오디오 데이터를 직접 교환합니다. 그러나 이러한 메서드를 통해 소프트웨어 컨트롤을 변경하면 디바이스가 공유 모드에서 작동 중인지 아니면 배타적 모드에서 작동 중인지에 관계없이 이벤트 알림이 생성됩니다. 디바이스가 배타적 모드로 작동하는 동안 소프트웨어 볼륨 및 음소거 컨트롤에 대한 변경 내용은 디바이스가 공유 모드로 전환되면 적용됩니다.

디바이스에 하드웨어 볼륨 및 음소거 컨트롤이 있는지 확인하려면 IAudioEndpointVolume::QueryHardwareSupport 메서드를 호출합니다.

IAudioEndpointVolumeCallback 인터페이스를 구현할 때 클라이언트는 교착 상태를 방지하기 위해 다음 규칙을 준수해야 합니다.

  • 인터페이스의 메서드는 차단 해제되어야 합니다. 클라이언트는 이벤트 콜백 중에 동기화 개체를 기다리지 않아야 합니다.
  • 클라이언트는 이벤트 콜백 중에 IAudioEndpointVolume::UnregisterControlChangeNotify 메서드를 호출해서는 안 됩니다.
  • 클라이언트는 이벤트 콜백 중에 EndpointVolume API 개체에 대한 최종 참조를 해제해서는 안 됩니다.
IAudioEndpointVolumeCallback 인터페이스를 구현하는 코드 예제는 엔드포인트 볼륨 컨트롤을 참조하세요.

상속

IAudioEndpointVolumeCallback 인터페이스는 IUnknown 인터페이스에서 상속됩니다. IAudioEndpointVolumeCallback 에는 다음과 같은 유형의 멤버도 있습니다.

메서드

IAudioEndpointVolumeCallback 인터페이스에는 이러한 메서드가 있습니다.

 
IAudioEndpointVolumeCallback::OnNotify

OnNotify 메서드는 오디오 엔드포인트 디바이스의 볼륨 수준 또는 음소거 상태가 변경되었음을 클라이언트에 알 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 endpointvolume.h

추가 정보

핵심 오디오 인터페이스

EndpointVolume API

IAudioEndpointVolume::RegisterControlChangeNotify

IAudioEndpointVolume::UnregisterControlChangeNotify