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


Регуляторы громкости

Клиенты, которые управляют потоками общего режима, обычно используют интерфейсы ISimpleAudioVolume и IAudioSessionEvents в WASAPI для управления уровнями потоков и мониторинга уровней потоков. С помощью методов в интерфейсе ISimpleAudioVolume клиент может получить и задать уровни громкости сеансов, к которым принадлежат потоки общего режима. Если Sndvol или другое приложение изменяет уровень тома сеанса, клиент может получать уведомление об изменении через интерфейс IAudioSessionEvents .

Клиенты, которые управляют потоками в монопольном режиме, обычно используют интерфейсы IAudioEndpointVolume и IAudioEndpointVolumeCallback в API EndpointVolume для управления и мониторинга уровней томов потока. С помощью методов в интерфейсе IAudioEndpointVolume клиент может получить и задать уровень громкости устройства аудио конечной точки. Если Sndvol или другое приложение изменяет уровень тома устройства конечной точки, клиент может получать уведомление об изменении через интерфейс IAudioEndpointVolumeCallback .

Как описано в аудиосешнях, Sndvol — это система управления томами. В нем отображаются элементы управления громкости для устройств конечной точки отрисовки звука в системе. (В настоящее время он не отображает элементы управления громкости для конечных точек аудиозахвата.) Чтобы просмотреть элементы управления томами для конкретного устройства, щелкните "Устройство " в строке меню и выберите имя устройства из списка доступных устройств.

Окно Sndvol разделяет элементы управления томом для устройства на две группы. Поле группы слева от окна помечено устройством. Поле "Устройство" содержит один элемент управления томом, контролируемый интерфейсом IAudioEndpointVolume . Изменения, внесенные пользователем в этот элемент управления томом, можно отслеживать с помощью интерфейса IAudioEndpointVolumeCallback.

Поле группы справа от окна Sndvol имеет метку "Приложения". Поле "Приложения" содержит элементы управления томами для приложений, которые в настоящее время совместно используют устройство. Для приложений, использующих устройство в общем режиме, элементы управления томами представляют уровни томов, управляемые интерфейсом ISimpleAudioVolume . Изменения, внесенные пользователем в эти элементы управления томами, можно отслеживать с помощью интерфейса IAudioSessionEvents.

Хотя приложение общего режима может использовать свой интерфейс IAudioSessionEvents для отслеживания изменений, внесенных пользователем в элемент управления томом приложения в поле "Приложения" в окне "Приложения" в окне Sndvol, приложение не может отслеживать изменения в элементах управления томами других не связанных приложений. Аналогичным образом приложение может изменять уровни громкости своих звуковых сеансов через интерфейс ISimpleAudioVolume , но не может изменять уровни томов сеансов, принадлежащих другим, не связанным приложениям.

Однако два или более связанных приложения (или экземпляры одного приложения) могут совместно использовать один и тот же элемент управления томом в окне "Приложения " в окне Sndvol либо путем назначения аудиопотоков одному сеансу между процессами или связыванием соответствующих сеансов с тем же параметром группировки. Дополнительные сведения см. в разделе "Звуковые сеансы " и "Параметры группировки".

WASAPI предоставляет два дополнительных интерфейса IChannelAudioVolume и IAudioStreamVolume для управления уровнями томов потоков общего режима. Эти интерфейсы в основном используются специализированными клиентами, которые требуют контроля над уровнями томов отдельных каналов в сеансе или отдельных потоках в сеансе.

API DeviceTopology позволяет клиентам получать доступ к элементам управления томами в топологиях звуковых адаптеров. Однако клиенты, управляющие потоками в монопольном режиме, обычно используют API EndpointVolume вместо API DeviceTopology для управления уровнями томов потока. API EndpointVolume упрощает управление томом устройства конечной точки двумя способами. Во-первых, если устройство конечной точки реализует аппаратное управление томом, API DeviceTopology требует от клиента пройти топологию устройства в поиске аппаратного элемента управления. Напротив, API EndpointVolume автоматически находит аппаратный элемент управления томами для клиента. Во-вторых, если устройство конечной точки не реализует аппаратное управление томом, клиент DeviceTopology должен реализовать управление томом в программном обеспечении. В отличие от этого, API EndpointVolume автоматически заменяет элемент управления томом программного обеспечения для отсутствующего аппаратного элемента управления.

В следующих разделах описаны элементы управления громкостями для звуковых сеансов и устройств конечной точки аудио:

Руководство по программированию