Интерфейс IAudioMeterInformation (endpointvolume.h)
Интерфейс IAudioMeterInformation представляет пиковый метр в звуковом потоке на устройство конечной точки звука или из нее. Клиент получает ссылку на интерфейс IAudioMeterInformation в объекте конечной точки, вызывая метод IMMDevice::Activate с параметром iid , равным REFIID IID_IAudioMeterInformation.
Если устройство адаптера, которое выполняет потоковую передачу звуковых данных на устройство конечной точки или из нее, реализует аппаратный пиковой метр, интерфейс IAudioMeterInformation использует этот счетчик для отслеживания пиковых уровней в аудиопотоке. Если звуковое устройство не имеет аппаратного пиковой метрики, звуковой модуль автоматически реализует пиковую метрику в программном обеспечении, прозрачно для клиента.
Если устройство имеет аппаратный пиковой метр, клиент может использовать методы в интерфейсе IAudioMeterInformation для отслеживания пиковых уровней устройства как в общем, так и в монопольном режиме. Если на устройстве отсутствует аппаратный пиковой метр, клиент может использовать эти методы для отслеживания пиковых уровней устройства в общем режиме, но не в монопольном режиме. В монопольном режиме клиент и устройство обмениваются звуковыми данными напрямую, минуя программный пиковой метр. В монопольном режиме программный пиковой метр всегда сообщает о пиковой величине 0,0.
Чтобы определить, имеет ли устройство аппаратный пиковой метр, вызовите метод IAudioMeterInformation::QueryHardwareSupport .
Для устройства конечной точки отрисовки интерфейс IAudioMeterInformation отслеживает пиковые уровни в потоке вывода, прежде чем поток будет затухнут элементами управления громкости конечных точек. Аналогичным образом, для устройства конечной точки захвата интерфейс отслеживает пиковые уровни во входном потоке, прежде чем поток будет затухнут элементами управления громкости конечных точек.
Пиковые значения, сообщаемые методами в интерфейсе IAudioMeterInformation , нормализуются в диапазоне от 0,0 до 1,0. Например, если поток PCM содержит 16-разрядные выборки, а пиковое значение выборки в течение определенного периода измерения равно –8914, то абсолютное значение, записанное пик-метром, равно 8914, а нормализованное пиковое значение, сообщаемое интерфейсом IAudioMeterInformation , равно 8914/32768 = 0,272.
Пример кода, в котором используется интерфейс IAudioMeterInformation , см. в разделе Пиковые метры.
Наследование
Интерфейс IAudioMeterInformation наследуется от интерфейса IUnknown . IAudioMeterInformation также имеет следующие типы элементов:
Методы
Интерфейс IAudioMeterInformation содержит следующие методы.
IAudioMeterInformation::GetChannelsPeakValues Метод GetChannelsPeakValues получает пиковые значения выборки для всех каналов в аудиопотоке. |
IAudioMeterInformation::GetMeteringChannelCount Метод GetMeteringChannelCount получает количество каналов в аудиопотоке, отслеживаемых по пиковой метрике. |
IAudioMeterInformation::GetPeakValue Метод GetPeakValue получает пиковое значение примера для каналов в аудиопотоке. |
IAudioMeterInformation::QueryHardwareSupport Метод QueryHardwareSupport запрашивает у конечного устройства аудио его аппаратные функции. (IAudioMeterInformation.QueryHardwareSupport) |
Требования
Минимальная версия клиента | Windows Vista [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | endpointvolume.h |