az_esm
Оракул
(82606)
12 лет назад
Что такое WASAPI?
WASAPI, или Windows Audio Session API (программный интерфейс аудиосеанса Windows) - это специальный интерфейс для вывода звука в операционных системах Windows Vista и Windows 7, поддерживающий побитовое воспроизведение. Для целей точного звуковоспроизведения больший интерес представляет использование WASAPI в так называемом исключающем режиме (exclusive mode), при котором обеспечивается прямой путь сигнала от программы-источника до звуковой карты, а также отключение всех остальных звуковых приложений и программного звукового процессора. Для использования этого интерфейса необходимо, чтобы проигрыватель поддерживал WASAPI, а звуковая карта имела драйвер для Windows Vista или Windows 7.
Alex SH
Мастер
(1743)
3 года назад
Microsoft Windows 7 и выше может воспроизводить звук двумя способами. используя прямую поддержку звука Directx и поддержку WASAPI. большинство приложений Windows используют подход Direct Sound. Windows может воспроизводить несколько потоков из разных приложений при использовании прямого звука. Directsound работает как промежуточный уровень между программным обеспечением и звуковыми драйверами. Он берет звук из другого программного обеспечения, затем передискретизирует весь звуковой поток в один поток, а затем отправляет его в аудиодрайверы. Обратной стороной этого подхода является то, что мы никогда не получаем то, что на самом деле играем. например, если кто-то воспроизводит звуковой файл на 192 кГц, 24 бит. тогда окна, вероятно, преобразуют его в 44 кГц, 16 бит с другим звуком. Прямой звук автоматически передискретизирует звуковой поток до соответствующей частоты дискретизации, которая может поддерживаться аудиооборудованием.
WASAPI предоставляет два режима работы. общий режим и эксклюзивный режим. Общий режим работает так же, как прямой звук, а микшер Win выполняет повторную выборку и микширование. В эксклюзивном режиме WASAPI обходит звуковой микшер Windows, и приложение может напрямую отправлять данные на звуковую карту. в этом режиме приложение может декодировать такие форматы, как DTS, DTS master audio, DOLBY True HD, Dolby digital, Flac и т. д., и отправлять неизмененный поток на звуковую карту.
Кроме различных режимов, важно также, как WASAPI управляет данными между буферами. WASAPI использует подход пуш и PULL для запроса данных, которые необходимо обработать. При использовании метода push приложение помещает данные в буферы и постоянно отслеживает их, и как только видит, что они опустошены, оно заполняет их снова. В подходе PULL, который является современной разработкой, приложение использует два буфера. Аудиодрайверы вызывают приложение, как только оно видит пустой буфер, и начинает использовать данные из другого буфера. тем временем приложения заполняют пустой буфер.