PulseAudio в Ubuntu работает как звуковой сервер в виде демона, который создаёт слой абстракции звуковых потоков для возможности различной коммутации. 3 Он принимает звуковой поток от приложений и воспроизводит его через ALSA. 3
Некоторые особенности работы PulseAudio:
- Создание объектов для звуковой карты. 2 Для каждой имеющейся звуковой карты и её «гнёзд» PulseAudio создаёт следующие объекты: Card (физическая звуковая карта со всеми её входами и выходами), Sink (приёмник звукового потока, выход звуковой карты: линейный выход, наушники, колонки ноутбука) и Source (источник звука, создающий звуковой поток, вход звуковой карты: линейный вход, микрофон). 2
- Перенаправление звукового потока. 1 Когда приложение, поддерживающее PulseAudio, собирается проигрывать звук, оно направляет свой вывод в один из объявленных Sink и становится «входом Sink». 12 Приложение может создавать несколько потоков вывода, создавая отдельные Sink-Input для каждого потока. 12
- Передача звука по сети. 1 Одна из возможностей аудиосервера PulseAudio — это передача аудиопотока по сети на удалённые аудиоустройства. 1
PulseAudio связан с аудиодрайвером ALSA следующим образом: поток данных от приложения, использующего ALSA, сначала попадает в ALSA, но сразу не воспроизводится, а передаётся в PulseAudio. 3 Потом PulseAudio снова передаёт поток в ту часть ALSA, которая занимается воспроизведением звука. 3
Таким образом, PulseAudio считается надстройкой над ALSA, так как без ALSA его использование бессмысленно (будет работать только коммутация, а звука не будет). 3