IAudioSessionEvents::OnChannelVolumeChanged 메서드(audiopolicy.h)

OnChannelVolumeChanged 메서드는 세션 서브믹스의 오디오 채널 볼륨 수준이 변경되었음을 클라이언트에 알릴 수 있습니다.

구문

HRESULT OnChannelVolumeChanged(
  [in] DWORD    ChannelCount,
  [in] float [] NewChannelVolumeArray,
  [in] DWORD    ChangedChannel,
  [in] LPCGUID  EventContext
);

매개 변수

[in] ChannelCount

채널 수입니다. 이 매개 변수는 세션 서브믹스의 오디오 채널 수를 지정합니다.

[in] NewChannelVolumeArray

볼륨 수준 배열에 대한 포인터입니다. 각 요소는 특정 채널의 볼륨 수준을 지정하는 float 형식의 값입니다. 각 볼륨 수준은 0.0에서 1.0 범위의 값입니다. 여기서 0.0은 무음이고 1.0은 전체 볼륨(감쇠 없음)입니다. 배열의 요소 수는 ChannelCount 매개 변수로 지정됩니다. 오디오 스트림에 n 채널이 포함된 경우 채널 번호는 0에서 n– 1로 지정됩니다. 인덱스가 채널 번호와 일치하는 배열 요소에는 해당 채널의 볼륨 수준이 포함됩니다. 배열이 호출 기간 동안만 유효하다고 가정합니다.

[in] ChangedChannel

볼륨 수준이 변경된 채널의 수입니다. 이 값을 NewChannelVolumeArray 배열의 인덱스로 사용합니다. 세션 서브믹스에 n 채널이 포함된 경우 채널 번호는 0에서 n– 1로 지정됩니다. 둘 이상의 채널이 변경되었을 수 있는 경우(예: IChannelAudioVolume::SetAllVolumes 메서드 호출의 결과로) ChangedChannel 값은 (DWORD)(–1)입니다.

[in] EventContext

이벤트 컨텍스트 값입니다. 이는 호출자가 채널의 볼륨 수준 변경을 시작한 호출에서 IChannelAudioVolume::SetChannelVolume 또는 IChannelAudioVolume::SetAllVolumes 메서드에 전달한 값과 동일합니다. 자세한 내용은 설명 부분을 참조하세요.

반환 값

메서드가 성공하면 S_OK가 반환되고, 그렇지 않으면 오류 코드가 반환됩니다.

설명

세션 관리자는 IChannelAudioVolume::SetChannelVolume 또는 IChannelAudioVolume::SetAllVolumes 메서드를 호출할 때마다 세션 서브믹스에서 하나 이상의 채널의 볼륨 수준을 성공적으로 업데이트할 때마다 이 메서드를 호출합니다. OnChannelVolumeChanged 호출은 새 채널 볼륨 수준 또는 수준이 이전 채널 볼륨 수준 또는 수준과 다른지 여부에 관계없이 발생합니다.

EventContext 매개 변수는 클라이언트가 시작한 채널 볼륨 변경 내용과 다른 클라이언트가 시작한 채널 볼륨 변경을 구분하는 수단을 제공합니다. IChannelAudioVolume::SetChannelVolume 또는 IChannelAudioVolume::SetAllVolumes 메서드를 호출할 때 클라이언트는 OnChannelVolumeChanged 메서드의 구현에서 인식할 수 있는 EventContext 매개 변수 값을 전달합니다.

IAudioSessionEvents 인터페이스에서 메서드를 구현하는 코드 예제는 오디오 세션 이벤트를 참조하세요.

요구 사항

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

추가 정보

IAudioSessionEvents 인터페이스

IChannelAudioVolume::SetAllVolumes

IChannelAudioVolume::SetChannelVolume