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


Метод IChannelAudioVolume::SetAllVolumes (audioclient.h)

Метод SetAllVolumes задает отдельные уровни громкости для всех каналов в звуковом сеансе.

Синтаксис

HRESULT SetAllVolumes(
  [in] UINT32      dwCount,
  [in] const float *pfVolumes,
  [in] LPCGUID     EventContext
);

Параметры

[in] dwCount

Количество элементов в массиве pfVolumes . Этот параметр должен равняться количеству каналов в формате потока для звукового сеанса. Чтобы получить количество каналов, вызовите метод IChannelAudioVolume::GetChannelCount .

[in] pfVolumes

Указатель на массив уровней громкости для каналов в звуковом сеансе. Количество элементов в массиве pfVolumes задается параметром dwCount . Вызывающий объект записывает уровень громкости для каждого канала в элемент массива, индекс которого соответствует номеру канала. Если формат потока для аудиосеанса имеет N каналов, каналы нумеруются от 0 до N–1. Допустимые уровни тома находятся в диапазоне от 0,0 до 1,0.

[in] EventContext

Указатель на GUID контекста события. Если вызов этого метода создает событие изменения объема канала, диспетчер сеансов отправляет уведомления всем клиентам, которые зарегистрировали интерфейсы IAudioSessionEvents с диспетчером сеансов. Диспетчер сеансов включает значение указателя EventContext с каждым уведомлением. Получив уведомление, клиент может определить, является ли он или другой клиент источником события, проверив значение EventContext . Эта схема зависит от того, выбирает клиент значение для этого параметра, которое является уникальным среди всех клиентов в сеансе. Если вызывающий объект предоставляет указатель NULL для этого параметра, метод уведомления клиента получает указатель контекста NULL .

Возвращаемое значение

Если метод завершается успешно, возвращает значение S_OK. В случае сбоя возможные коды возврата включают, помимо прочего, значения, показанные в следующей таблице.

Код возврата Описание
E_INVALIDARG
Параметр dwCount не равен числу каналов в формате потока для звукового сеанса или значение элемента массива pfVolumes не находится в диапазоне от 0,0 до 1,0.
E_POINTER
Параметр pfVolumes имеет значение NULL.
AUDCLNT_E_DEVICE_INVALIDATED
Устройство конечной точки аудио отключено, звуковое оборудование или связанные аппаратные ресурсы были перенастроены, отключены, удалены или иным образом недоступны для использования.
AUDCLNT_E_SERVICE_NOT_RUNNING
Служба звука Windows не запущена.

Комментарии

При успешном выполнении этого метода создается событие изменения объема канала независимо от того, отличается ли какой-либо из новых уровней тома канала по значению от предыдущих уровней тома канала.

Требования

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

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

Интерфейс IAudioSessionEvents

Интерфейс IChannelAudioVolume

IChannelAudioVolume::GetChannelCount