Архитектура звука Windows
В этом разделе представлена сводка по архитектуре звука Windows 10/11.
Схема стека аудио стека Windows 10/11
На этой схеме представлена сводка основных элементов стека звука Windows 10/11.
Программные интерфейсы
API верхнего уровня
API верхнего уровня используются для разработки приложений. Эти API в настоящее время используются и поддерживаются.
- Класс XAML MediaElement(C#, VB, C++)
- Теги> объектов HTML Audio и Видео<(используются веб-сайтами и Windows веб-приложения)
- Пространство имен Windows.Media.Capture (C#, VB, C++)
- Microsoft Media Foundation (C++)
Эти старые API устарели.
API низкого уровня
Эти API нижнего уровня рекомендуется использовать для потоковой передачи звука.
Этот API нижнего уровня рекомендуется для перечисления.
Эти API не рекомендуется использовать для приложений Windows.
- О API MMDevice (заменено Windows.Devices.Enumeration)
- DeviceTopology API
- EndpointVolume API
Звуковой модуль
Звуковой модуль состоит из двух связанных компонентов, граф аудиоустройства (audiodg.exe), который загружает звуковой модуль (audioeng.dll).
Звуковой механизм:
- Смешивает и обрабатывает звуковые потоки. Дополнительные сведения о том, как звуковой модуль использует буферы для передачи звука, см. в разделе "Общие сведения о драйвере портов WaveRT".
- Загружает объекты обработки звука (API), которые являются подключаемыми модулями H/W, обрабатывающими звуковой сигнал. Дополнительные сведения об API см. в разделе "Объекты обработки звука Windows".
Аудиослужба (audiosrv.dll)
Звуковая служба:
- Используется для настройки и управления звуковыми потоками.
- Реализует политики Windows для фонового воспроизведения звука, утки и т. д.
Построитель звуковых конечных точек (audioendpointbuilder.exe)
Построитель звуковых конечных точек (audioendpointbuilder.exe):
- Используется для обнаружения новых звуковых устройств и создания конечных точек программного обеспечения. Дополнительные сведения об используемом алгоритме см. в разделе "Алгоритм построителя звуковых точек".
Звуковые драйверы
Звуковые драйверы:
- Следуйте модели порта-минипорта. Дополнительные сведения см. в разделе "Звуковая терминология WDM" и разработка минипорта WaveRT.
- Разрешить стеку звука отрисовывать и записывать звук с нескольких звуковых устройств, включая интегрированные динамики и микрофоны, гарнитуры или наушники, USB-устройства, устройства Bluetooth, HDMI и т. д.
- Модель порта-минипорта соответствует расширенной архитектуре звука Linux ALSA
- Дополнительные сведения о примере кода драйвера см. в разделе "Примеры звуковых драйверов".
Оборудование
Звуковое оборудование, которое присутствует на любом устройстве, зависит, но может включать:
- Аудиокодек
- DSP (необязательно)
- Интегрированные динамики, микрофон и т. д.
- Внешние устройства: USB-звуковые устройства, аудиоустройства Bluetooth, звук HDMI и т. д.
- Обработку сигналов также можно реализовать в H/W (например, кодек или DSP), а не в дополнение к API.