Как ALSA и PulseAudio имеют отношение?

При попытке заставить мой звук работать, я задавался вопросом о ролях ALSA и PulseAudio. Я и установил, и задавался вопросом, например, кто из них должен знать о моей звуковой карте.

Оба, кажется, могут использовать друг друга, существует pulseaudio плагин для ALSA, и в моей системе, alsa обнаруживается как звуковая карта в pulseaudio.

Какой из этих двух делает то, что, являются они альтернативами или дополнительный?

30
задан 20.03.2017, 12:04

1 ответ

ALSA является микшером звука уровня ядра, он управляет Вашей звуковой картой непосредственно. ALSA отдельно может только обработать одно приложение за один раз. Конечно, существует 'dmix', который был записан для решения этой проблемы. (Это - модуль ALSA.)

PulseAudio является микшером программного обеспечения сверх пространства пользователя (как, Вы запустили приложение). Когда это работает, это использует Alsa - без dmix - и управляет каждым видом смешивания, устройств, сетевых устройств, все отдельно.

В 2014 можно все еще выполнить только ALSA. Но если Вы не компилируете свои приложения для себя и включаете поддержку ALSA везде - или используете основанное на источнике распределение как хинду - Вы могли бы получить смешивание проблем. Предварительно скомпилированные приложения, которые поставляют дистрибутивы, обычно только создаются с поддержкой Pulseaudio, не чистым ALSA. Ubuntu, например, предпочитает PulseAudio. Это идет с PulseAudio по умолчанию, таким образом, каждое приложение компилируется, чтобы только использовать PulseAudio.

PulseAudio действительно обладает своими преимуществами. Люди говорят, что это хорошо для работы с аудио через сеть, и это решает некоторые проблемы с многоканальными аудиопотоками, которые произошли под чистым ALSA. Также, предположительно, легче разработать приложения для PA. На стороне конечного пользователя вещей легко выбрать новые устройства, управлять объемом приложением, и т.д.

Однако в конфигурации по умолчанию это добавляет весьма значительную сумму задержки в соединение. Это - большой довод "против" для определенных типов задач, которые требуют низкой задержки как некоторые игры и программное обеспечение.

OSS является альтернативой обоим из них, но оно не лицензируется под GPL, который делает его вряд ли для наблюдения большого принятия дистрибутивами.

Иллюстрация:
Типичные PulseAudio-приводимые-в-действие аудиосистемы, как Ubuntu:
Ядро: ALSA-> Пространство пользователя: PulseAudio-> app1, app2, app3
В типичной системе Linux PulseAudio смешивает аудио из всех Ваших различных приложений и подает их цепочка к ALSA.

ALSA:
Ядро: ALSA-> dmix-> Пространство пользователя: app1, app2, app3
С просто чистым ALSA Вам нужен dmix для смешивания нескольких приложений. Без него ALSA может только играть аудиопоток из одного приложения за один раз.

OSS:
Ядро: OSS-> Пространство пользователя: app1, app2, app3
С OSS приложения пространства пользователя говорят непосредственно с OSS в ядре, которое смешивает потоки самом.

Таким образом, таким образом, в Вашей типичной системе в эти дни, переговоры по ALSA непосредственно Вашим звуковым картам и Pulseaudio говорит с Вашими приложениями и программами и подачей это в ALSA.

32
ответ дан 07.12.2019, 09:17

Теги

Похожие вопросы