В один день мне надоел весь этот зоопарк со звуковыми серверами в linux и я решил что надо что-то делать. В начале я использовал esound...
Введение
Что же такое PulseAudio спросите вы? Это очень мощный сетевой звуковой сервер для linux (и freebsd, сам видел ;) ). Она позволяет куче приложений использовать одну звуковую карту.
PulseAudio может играть через OSS, ALSA и jack. OSS уже почти умер, у меня не только oss модулей для ядре нет, но и выключенна эмуляция на уровне ALSA. Через jack я не пробывал. Здесь описана только настройка polypaudio через ALSA.
Установка PulseAudio
Для начала, нам надо поставить сам PulseAudio и некоторые дополнительные приложения для него.
Настройка звука через PulseAudio
И так, в общем случае, его даже настраивать не надо. Достаточно его запустить его вот так:
Если он у вас не запускается, то это может быть по следующим причинам:
1) В /tmp/ имеется .esd с правами 1777 и root:root. Достаточно удалить .esd (https://bugzilla.altlinux.org/show_bug.cgi?id=10017)
2) У вас не запущен HAL daemon. Запустите его.
3) У нас нет звуковой карточки или она не настроена.
Ну а кому охота настроить его ручками, руководство ниже.
Вот мой конфиг, в нём ключена эмуляция esd.
Или ещё один конфиг с выключенной эмуляцией esd:
Запуск и остановка звукового сервера
Теперь, можно его поднять следующей командой:
Что бы выключить (если сильно надо):
Настройка звуковых клиентов
Описание настройки XMMS и MPlayer ниже.
Настройка XMMS через PulseAudio
1) XMMS => Ставим плагин xmms-out-pulse и в настройках указываем что звук надо играть через него.
2) XMMS => Ставим плагин xmms-out-esd и в настройках выбираем его.
3) XMMS => Ставим плагин xmms-out-alsa и в настройках выбираем его.
Настройка MPlayer через PulseAudio
MPlayer => Ставим mplayer из Сизифа и говорим играть через pulse (-ao pulse).
Остальные звуковые клиенты которые умееют играть только через ALSA
Или, с настроеной ALSA играем всё через неё. ALSA сама сделает своё грязное дело.
PulseAudio и ALSA
В последнем релизе ALSA (1.0.12) в пакет alsa-plugins добавлен плагин для вывода звука через PulseAudio.
Для одного пользователя настраивается так:
И после, любое приложение играющее через alsa автоматически начинает играть на локальный PulseAudio сервер.
PulseAudio и libao
Ставим libao-pulse:
И настраиваем так:
PulseAudio и gstreamer
Ставим gst-pulse:
Как настраивается я не знаю. ;)
Различные замеченные проблемы
MPlayer как-то странно играет через esd эмуляцию в pulseaudio. Вобщем, не рекомендую.
При использовании hibernate с wks26-up ядром (wks26-smp не тестировал) возникает мелкая проблема. После просыпания машины из hibernate, pulseaudio надо остановить и запустить заново (иначе, звука просто нет).