Зачем нужно WASAPI и как правильно выводить звук в Windows

Windows Audio Session API (WASAPI) позволяет клиентским устройствам управлять потоком аудиоданных между приложением и конечным аудиоустройством. Делает комфортным прослушивание музыкальных композиций и микширование без нежелательных задержек и без потери качества. Удобно wasapi скачать на нашем сайте и установить.

Зачем нужно WASAPI и как правильно выводить звук в Windows

Что такое WASAPI

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

Аудиодвижок — это аудиокомпонент пользовательского режима, через который приложения совместно используют доступ к конечному аудиоустройству. Звуковая машина передает аудиоданные между буфером конечной точки и конечным устройством. Для воспроизведения аудиопотока через устройство конечной точки рендеринга приложение периодически записывает аудиоданные в буфер конечной точки рендеринга. Звуковой движок микширует потоки из различных приложений. Чтобы записать аудиопоток с устройства конечной точки захвата, приложение периодически считывает аудиоданные из буфера конечной точки захвата.

Зачем нужно WASAPI и как правильно выводить звук в Windows
цепочка вывода звука

WASAPI состоит из нескольких интерфейсов. Первый из них — это интерфейс IAudioClient. Чтобы получить доступ к интерфейсам WASAPI, клиент сначала получает ссылку на интерфейс IAudioClient конечного аудиоустройства, вызывая метод IMMDevice :: Activate с параметром iid, установленным на REFIID IID_IAudioClient. Клиент вызывает метод IAudioClient :: Initialize для инициализации потока на устройстве конечной точки. После инициализации потока клиент может получить ссылки на другие интерфейсы WASAPI, вызвав метод IAudioClient :: GetService.

Многие методы в WASAPI возвращают код ошибки AUDCLNT_E_DEVICE_INVALIDATED, если конечное аудиоустройство, используемое клиентским приложением, становится недействительным. Часто приложение может исправить эту ошибку.

WASAPI реализует следующие интерфейсы в foobar.

  • AudioCaptureClient. Позволяет клиенту читать входные данные из буфера конечной точки захвата и передавать в браузер.
  • AudioClient. Создавать, настроить и инициализировать аудиопоток между аудиоприложением и аудиосистемой или аппаратным буфером конечного аудиоустройства.
  • AudioClock. Отслеживать скорость передачи данных потока и текущую позицию в потоке.
  • AudioRenderClient. Записывать выходные данные в буфер конечной точки рендеринга.
  • AudioSessionControl. Настраивать параметры управления для аудиосеанса и отслеживать события в сеансе, в том числе default.
  • AudioSessionManager. Включить доступ к элементам управления сеансом и элементам управления громкостью как для межпроцессных, так и для конкретных аудиосеансов.
  • AudioStreamVolume. Контролировать и отслеживать уровни громкости для всех каналов в аудиопотоке.
  • ChannelAudioVolume. Управлять уровнями громкости для всех каналов в аудиосеансе, которому принадлежит поток.
  • SimpleAudioVolume. Управлять общим уровнем громкости аудиосеанса.
  • AudioSessionEvents. Предоставляет уведомления о событиях, связанных с сеансом, таких как изменения уровня громкости, отображаемого имени и состояния сеанса. Открывает доступ пользователю данной программы в mode и support.

В чем отличие Wasapi Exclusive (Event) от Wasapi Exclusive (Push)

Если вы решили скачать wasapi exclusive , то есть два варианта на 32 и 64 bite. Есть два основных способа связи с помощью:

  • Wasapi Exclusive (Event).
  • Wasapi Exclusive (Push).

Оба передают одни и те же аудиоданные и звучат одинаково. Отличие заключается, исключительно, в возможности работать с тем или иным оборудованием.

Обратите внимание: начиная с версии «MC 18.0.183», WASAPI теперь используется, как программа по умолчанию. Если ваше аудиоустройство не поддерживает этот режим, его можно отключить в диалоговом окне настроек устройства.

Версии до 18.0.183. В режиме вывода WASAPI данные из Media Center передаются на звуковое устройство. Он работает практически со всем оборудованием.

WASAPI Event Style позволяет звуковому устройству извлекать данные из Media Center. Этот метод поддерживается не всем оборудованием, но рекомендуется, если он поддерживается. Это дает несколько преимуществ:

Это позволяет аудиоподсистеме извлекать данные вместо того, чтобы отправлять данные в систему.

Тестирование методов вывода звука

Оборудование (или интерфейс WASAPI) никогда не видит вызовов паузы или сброса. Вместо этого при паузе или сбросе тишина доставляется в цикле pull. Это устраняет необходимость во взломах карт, которые окружают свои буферы при паузе, сбросе и т. Д. (ATI HDMI и т. д.). Это обеспечивает более прямой путь данных к driver/оборудованию. В основном «цикле извлечения» используется круговой буфер без блокировки (система, которую Дж. Ривер построил для ASIO), поэтому выполнение запроса на извлечение выполняется как можно быстрее.

В чем разница между Directsound и Wasapi Shared

Windows — наиболее широко используемая операционная система в мире. люди используют ее для решения повседневных задач, и прослушивание звука — одна из них. 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, который является современной разработкой, приложение использует два буфера. Аудиодрайверы вызывают приложение, как только оно видит пустой буфер, и начинает использовать данные из другого буфера. тем временем приложения заполняют пустой буфер.

Что лучше ASIO или WASAPI

ASIO был разработан для обхода исходной некорректной аудиоподсистемы Windows, которая заставляла все работать с фиксированной скоростью, смешивала системные звуки и аудиопотоки и имела серьезные проблемы с задержкой. ASIO был разработан для обеспечения интерфейса с малой задержкой для профессиональных аудио вычислений. Wasapi — это разработка Microsoft, устраняющая недостатки на более ранней стадии, и она работает стабильно. Но она меньше поддерживает нестандартные скорости воспроизведения и может не поддерживать dop dsd или более высокие скорости dsd.

ASIO изначально поддерживает все частоты дискретизации, которые может обрабатывать подключенный ЦАП, и не имеет проблем с dsd. Длина буфера в основном зависит от общей загрузки системы, поскольку компьютеру приходится прерывать другие операции для загрузки следующего фрагмента выборок в выходной буфер, поэтому в системах с низким энергопотреблением или более загруженных системах очень короткий или очень длинный буфер может увеличить нагрузку на процессор. Это может спровоцировать нежелательную задержку при воспроизведении музыкальных композиций.

Зачем нужно WASAPI и как правильно выводить звук в Windows

ASIO — это модель аудиоинтерфейса Steinberg, используемая практически во всех профессиональных аудиоприложениях, и обычно это лучший способ работы с очень низкими задержками. Производители профессиональных звуковых карт предоставляют драйверы ASIO. Его единственная слабость заключается в том, что вы можете использовать только один драйвер ASIO за раз, что может вызвать проблемы в будущем, поскольку все больше и больше студийного оборудования, такого как микрофоны, звуковые модули и мониторы (именно так называются динамики в мире профессионального обучения). audio) поставляются с интерфейсами USB, а не с более старой моделью, объединяющей все ваши входы и выходы в единый аудиоинтерфейс.

Многие компании, производящие потребительское аудио, в наши дни производят asio-драйверы для своих ЦАП, поскольку они исключают из уравнения любые вычисления в Windows и обеспечивают более высокие шансы на получение хороших результатов от их продукта.

Какие операционные системы поддерживают Wasapi

Wasapi разработан для операционного семейства Windows и стабильно работает с ОС, начиная от Windows 7 и XP. Wasapi в Windows 10, по мнению большинства пользователей, является наиболее удобной.

Где скачать драйвер Wasapi

Скачать драйвер для Wasapi, а также сопутствующее программное обеспечение можно тут.

Вывод

WASAPI предоставляет два варианта рендеринга звука — общий режим и эксклюзивный режим. В монопольном режиме вы — единственное приложение, которое обращается к рассматриваемой аудио конечной точке — все остальные приложения не могут издавать никакого шума. Это дает наилучшую возможную производительность, как и все профессиональные аудио-приложения, такие как Cubase, SONAR, REAPER, Pro Tools и т. д. Но они не используют WASAPI. Они используют aimp ASIO или Kernel Streaming.

Ян Алаев

Инженер-электроник (по первому высшему образованию). Автор действующего российский радиотехнического форума forum.alaev.club. Стаж меломана - более 20 лет.

Добавить комментарий