Я хотел бы использовать мой 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
Ответы:
Я установил его на Raspberry Pi с использованием приемника ALSA, выполнив следующую процедуру:
Для установки необходимых файлов:
Чтобы включить ALSA:
Чтобы настроить сеть:
и раскомментируйте строки:
Чтобы запустить сервер pulseaudio, используйте:
Вы должны быть в состоянии проверить, работает ли он, проиграв файл wav с paplay (
sudo apt-get install pulseaudio-utils
), а также по сети, выбрав приемник на панели управления звуком вашей системы.Вы также можете быть в состоянии настроить в общесистемном режиме с помощью:
источник
pulseaudio-module-zeroconf
отсутствует в части установки apt-get. Следует упомянуть, возможно, такжеpulseaudio --log-level=debug
для устранения любых проблем. На источнике звука (не на Raspberry Pi) вы должны запустить,paprefs
чтобы легко просмотреть ваш Pulseaudio Conf (если у вас есть X11). И не забудьте перезапустить,pulseaudio
если сомневаетесь.Если вы хотите, чтобы pulseaudio запускался при загрузке, но как служба уровня пользователя, вы можете создать системный файл модуля. Это может помочь, так как 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 - полезное значение по умолчанию, но я действительно не знаю, что он делает.
источник
~/.config/systemd/user/pulseaudio.service
и использовать systemd с--user
флагом, чтобы избежать привилегий root.Мне было трудно заставить работать Puludio на Wheezy Rasbian (2012-10-28) с использованием аналогового выхода. Вот что я сделал, чтобы заставить его работать в режиме сеанса (не в системном режиме). Системный режим тоже может работать, я не пробовал. Настройка сервера потребует дополнительной работы. Я нашел эту информацию в разных местах, надеюсь, сбор ее здесь кому-нибудь поможет.
Установите pulseaudio и убедитесь, что пользователь (например, eric) входит в группу аудио:
Изменение /etc/asound.conf выглядит следующим образом. Это устанавливает pulseaudio для использования в качестве устройства alsa по умолчанию, поэтому приложения используют его без какой-либо дополнительной настройки. Первые две декларации (включая прокомментированную) были в оригинальном файле.
Добавьте следующие строки в /etc/pulse/daemon.conf:
trivial
это метод самого низкого качества, но использует около 6% процессорного времени.src-sinc-fastest
также работал для меня, но использовать около 25% процессора. Другие могут работать так же. Это немного позже, я не совсем понимаю необходимость, но, похоже, это был магический ингредиент. Вы можете прочитать больше об этом здесь .Наконец, чтобы заглушить звук, воспроизводимый между песнями, закомментируйте эту строку в /etc/pulse/default.pa следующим образом:
Все еще есть некоторые пропуски, когда два источника играют одновременно, и если я найду лекарство от этого, я добавлю к этому ответу.
источник
trivial
для меня.