Pull to refresh

Pulseaudio в Ubuntu — звук по сети (и не только)

Reading time3 min
Views11K
Original author: Paul Betts
Update/Disclaimer: эта хня уже не актуальна т.к. в 8.04 оно завёрнуто в пульс по дефолту. В 7.10 есть какие-то макросы в asoundconf на эту тему. Остальные дистрибы тоже ползут в этом направлении.


Этой осенью я делал презентацию для OSU Open Source club про сервер звука PulseAudio, заменяющий ESD, но с кучей новых дополнений и трюков.
К сожалению, с тех пор я не смог заставить его заработать снова, и не мог до тех пора, пока не обновился до Feisty Fawn. Я наконец разобрался как это делается.

Почему PulseAudio?



Сначала, немного мотивации. Зачем сейчас использовать сервер звука? Вроде бы ALSA нормально работает. Есть три причины почему стоит установить PulseAudio:
  • Самая главная — PulseAudio может прозрачно воспроизводить звук по сети, вне зависимости от настоящего расположения компьютера. Что это значит? В
    сущности, вы жмёте Play на ноуте и звук идёт из колонок вашего десктопа.
  • Старые программы использующие OSS могут быть настроены чтобы работать корректно, при этом остальные звуки будут воспроизводиться в это же время.
  • Ещё не реализованая, но очёнь клёвая штука: звук может быть настроен для каждого приложения по-отдельности. Сейчас можно управлять этим вручную, но будет очень здорово, когда это будет автоматически, основываясь на классе источника. Например, музыка сделается тише, когда вы принимаете VoIP вызов. Кое-кто работал над этим в качестве своего проекта Google SoC, но не ушёл особо далеко (и по-моему, его реализация всё равно надуманная).




Как Pulseaudio'фицироваться



Для этого нужно установить несколько пакетов:

<code>sudo apt-get install "pulseaudio-*" paman padevchooser paprefs


Если у вас установлен Flash Player 9 сделайте ещё и это:
wget "http://www.paulbetts.org/projects/libflashsupport_1.0~2219-1_i386.deb"
sudo dpkg -i libflashsupport_1.0~2219-1_i386.deb


Далее, отредактируйте файл настроек ALSA: sudo gedit /etc/asound.conf. Пропишите туда следующее:

<code>pcm.pulse {
    type pulse
}

ctl.pulse {
    type pulse
}

pcm.!default {
    type pulse
}
ctl.!default {
    type pulse
}
</code>


Некоторые настройки



Теперь, зайдите в меню Система → Настройки → Звук и на вкладке «Звуки» включите «програмное смешивание звука (ESD)».
Необходимо добавить всех пользователей в группу pulse-access. Для этого зайдите в меню Система → Администрирование → Пользователи и группы, Управление группами и выберите группу pulse-access и добавьте в неё всех пользователей, которые будут использовать аудиосервер. Иначе у вас будут ошибки «no-sound» и зависания.
Далее, убедитесь, что PulseAuidio настроен правильно — нажмите Alt+F2 и введите paprefs. Так выглядят правильные настройки:
настройка pulseaudio paprefs screenshot
Убедитесь, что Multicast/RTP отключены, иначе у вас будут проблемы в виде сбоев и задержек.
Перезагрузитесь или запустите `pulseaudio'. Далее, зайдите в меню Аудио и видео → PulseAudio device chooser и если у вас уже настроено больше одного компьюетра, вы можете выбрать куда выводить звук.

Некоторые проблемы



К сожалению, хотя скорее всего получится заставить это работать, это несколько неудобно и глючно — PulseAudio ещё не настолько пуленепробиваема и вам возможно придётся что-то затачивать. В частности, раздражает Skype; обычно лучше всего сделать killall pulseaudio перед попыткой сделать вызов Skype, хотя у меня получалось заставить его работать через OSS и padsp.

Благодарности: большая часть этого howto взята из The Perfect Setup с сайта PulseAudio.
Поддержка Flash 9 найдена на вики Revolution Linux

Отсебятина про настройку


Рекомендую сделать aptitude search pulseaudio и поставить оттуда всё что есть. Потом доставить libgstreamer-plugins-pulse0.10-0</
code> и запустить gstreamer-properties
, выставив там PulseAudio где можно.


После основной установки можно пройтись по вышеуказаному The Perfect Setup и настроить всё что нужно/есть: все проги поснимать с альсы и осс и посадить на pulse. На всякий случай (:

Жители KDE ставят pulseaudio-esound-compat и переключают arts на esd.

В файле /etc/default/pulseaudio можно поставить автозагрузку сервера вместе с системой. Тогда (наверно) не надо добавлять pulseaudio в автозагрузку пользователя.
Tags:
Hubs:
Total votes 1: ↑1 and ↓0+1
Comments5

Articles