Дополнительно
Как запустить PulseAudio?
Я хотел бы использовать свой Raspberry Pi в качестве поглотителя PulseAudio, который может воспроизводить аудио по сети.
Для начала я хочу запустить Pulseaudio локально и столкнулся с различными ошибками. Я использую рекомендуемый образ Debian.
Какова наилучшая процедура для запуска PulseAudio?
Вот что я пробовал до сих пор:
Процедура
Моя процедура до сих пор выглядела примерно следующим образом:
Установите Pulseaudio и VLC:
sudo apt-get install pulseaudio
Настройте GStreamer на использование стока pulseaudio:
gconftool-2 -t string --set /system/gstreamer/0.10/default/audiosink pulsesink
Загрузите модуль ядра для аудиоустройства
sudo modprobe snd_bcm2835
Запустите VLC с mp3
vlc
Проблемы
VLC неоднократно ломается, печатая эту ошибку:
[0x7503d0] alsa audio output error: cannot write: Broken pipe
28
3
Я заставил его работать на моем Raspberry Pi, используя поглотитель ALSA, процедура следующая:
Установить необходимые файлы:
Чтобы включить ALSA:
Чтобы настроить сетевое взаимодействие:
и откомментируйте строки:
Чтобы запустить сервер pulseaudio, используйте:
Вы должны быть в состоянии проверить, что он работает, воспроизводя wav-файл с помощью paplay (
sudo apt-get install pulseaudio-utils
), а также по сети, выбрав раковину в панели управления звуком вашей системы.Возможно, вы также сможете настроить в общесистемном режиме с помощью:
Если вы хотите, чтобы pulseaudio запускался при загрузке, но как служба на уровне пользователя, вы можете создать файл systemd unit. Это может помочь, так как pulseaudio не предпочитает работать в системном режиме. https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/SystemWide/
Вот сервис, который я написал в /etc/systemd/system/pulseaudio.service
Before= указывает ему ждать до инициализации sound.target. BusName= подключает его к D-Bus WantedBy=session.target - полезное значение по умолчанию, но я не знаю, что оно делает.
У меня возникли трудности с запуском pulseaudio на Wheezy raspbian (2012-10-28) с использованием аналогового выхода. Ниже описано, что я сделал, чтобы заставить его работать в режиме per-session (не в системном режиме). Системный режим тоже может работать, но я не пробовал. Настройка сервера потребует дополнительной работы. Я нашел эту информацию в разных местах, надеюсь, что собранная здесь информация кому-нибудь поможет.
Установите pulseaudio и убедитесь, что пользователь (например, eric) входит в группу audio:
Измените файл /etc/asound.conf следующим образом. Это настроит pulseaudio на использование в качестве устройства alsa по умолчанию, чтобы приложения использовали его без дополнительной настройки. Первые два объявления (включая закомментированное) были в оригинальном файле.
Добавьте следующие строки в /etc/pulse/daemon.conf:
trivial
- самый низкокачественный метод, но использует около 6% CPU.src-sinc-fastest
также работал у меня, но использует около 25% CPU. Другие методы тоже могут работать. Этот последний бит я не совсем понимаю, зачем он нужен, но, похоже, это волшебный ингредиент. Подробнее об этом можно прочитать здесь.Наконец, чтобы заглушить звуковые всплески между проигрыванием песен, закомментируйте эту строку в файле /etc/pulse/default.pa следующим образом:
Все еще есть некоторые выпадения при одновременном воспроизведении двух источников, если я найду решение этой проблемы, я добавлю его в этот ответ.