Поделиться через


Метод 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 клиент передает значение параметра EventContext , которое может распознать его реализация метода OnChannelVolumeChanged .

Пример кода, реализующий методы в интерфейсе IAudioSessionEvents , см. в разделе События аудиосеанса.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header audiopolicy.h

См. также раздел

Интерфейс IAudioSessionEvents

IChannelAudioVolume::SetAllVolumes

IChannelAudioVolume::SetChannelVolume