При необходимости вы можете использовать модуль mpd, pulseaudio и raop2:
- mpd для управления плейлистами, библиотекой и т. д. (
sudo apt-get install mpd
)
- pulseaudio для управления аудиовыходами: raop для AirPlay или любого другого устройства вывода, такого как аналоговый разъем, HDMI, служба потоковой передачи http и т. д. (
sudo apt-get install pulseaudio
)
- Модуль raop2 для pulseaudio, если оригинальный модуль raop, встроенный в pulseaudio, не работает
Мне пришлось собрать pulseaudio из источника, чтобы получить обновленную версию модуля RAOP для pulseaudio.
Вот что я сделал, чтобы заставить его работать (он может жаловаться на отсутствующие пакеты, только на sudo apt-get install
них):
Установить MPD
sudo apt-get install mpd
Установить PulseAudio
Вариант A: у вас старое устройство AirPlay или вам не нужна потоковая передача UDP.
Это проще, но менее совместимо.
sudo apt-get install pulseaudio
Вариант B: вам нужна лучшая совместимость и поддержка потоковой передачи по TCP и UDP
Тогда вам нужен модуль raop2 для pulseaudio, что означает создание PA из источника.
Установите git, если вы этого еще не сделали, и соберите pulseaudio (см. Официальные инструкции ):
sudo apt-get install git intltool autoconf build-essential
cd
git clone https://github.com/hfujita/pulseaudio-raop2
cd pulseaudio-raop2
./bootstrap.sh
make
sudo make install
На моей установке мне пришлось вручную ссылаться на libpulse.so.0:
cd ~/pulseaudio-raop2
sudo rm /usr/lib/arm-linux-gnueabi/libpulse.so.0
sudo ln -s `cd;pwd`/pulseaudio-raop2/src/.libs/libpulse.so.0 /usr/lib/arm-linux-gnueabi/libpulse.so.0
sudo chown root.root /usr/lib/arm-linux-gnueabi/libpulse.so.0.16.2
sudo chmod 744 /usr/lib/arm-linux-gnueabi/libpulse.so.0
или, по вашему выбору:
cd ~/pulseaudio-raop2
sudo rm /usr/lib/arm-linux-gnueabi/libpulse.so.0.16.2
sudo mv pulseaudio-raop2/src/.libs/libpulse.so.0 /usr/lib/arm-linux-gnueabi/libpulse.so.0.16.2
sudo chown root.root /usr/lib/arm-linux-gnueabi/libpulse.so.0.16.2
sudo chmod 744 /usr/lib/arm-linux-gnueabi/libpulse.so.0.16.2
Настроить все
Начальная настройка MPD
Теперь нам нужно настроить MPD:
sudo vi /etc/mpd.conf
В этом файле установите следующее:
music_directory "/path/to/your/music"
user "mpd"
bind_to_address "127.0.0.1"
bind_to_address "192.168.x.y"
bind_to_address "2a01:xzy....your IPv6 if you want"
Нам нужно отредактировать вывод, но сначала нам нужно имя приемника pulseaudio.
PulseAudio раковины
Avahi / zeroconf приятно иметь, потому что он позволит обнаруживать устройства AirPlay (через zeroconf / mDNS / Bonjour):
sudo apt-get install avahi
Теперь мы можем запустить pulseaudio и попробовать загрузить модули RAOP:
pulseaudio --start --log-target=syslog -vvvv --log-level=debug
pacmd load-module module-raop-discover
pacmd list-sinks | grep name:
Вот вывод на моей установке:
name: <raop_output.Freebox-Player.local>
name: <raop_output.Freebox-Server.local>
name: <raop_output.Freebox-Player.local.2>
name: <raop_output.Freebox-Server.local.2>
Затем вам нужно /etc/mpd.conf
снова отредактировать и добавить следующие выводы:
audio_output {
type "pulse"
name "Freebox Player"
sink "raop_output.Freebox-Player.local"
format "44100:24:1"
}
Добавьте один из этих блоков для каждого устройства AirPlay, на которое вы хотите передавать музыку.
Конфигурация PulseAudio
Последняя часть заключается в настройке PA:
sudo vi /etc/pulse/client.conf
Раскомментируйте autospawn = yes
, это заставит pulseaudio запускаться автоматически, когда это необходимо.
sudo vi /etc/pulse/default.pa
Добавьте следующую строку внизу:
load-module module-raop-discover
Это заставит pulseaudio загрузить модуль обнаружения RAOP при его запуске.
Заключительный этап
Это должно работать сейчас. Запустите MPD (сначала остановите его, если он работает):
sudo /etc/init.d/mpd start
Подождите немного, на моем RasPI потребуется не менее 10-15 секунд, прежде чем демон сможет работать должным образом.
Обновите свою музыкальную библиотеку (и дождитесь ее завершения):
sudo apt-get install mpc
mpc update
Включите выходы по желанию (ниже будут перечислены сконфигурированные выходы MPD и активированы первые):
mpc outputs
mpc enable 1
Теперь используйте ваш любимый MPD-клиент для воспроизведения музыки. Я использую ncmpcpp
в командной строке, и MPDroid на моем телефоне / планшете.
Исправление проблем
Запустите mpd в подробном формате, pulseaudio с максимальным уровнем регистрации и отслеживайте журналы:
mpd --verbose
pulseaudio --start --log-target=syslog --log-level=debug -vvvv
tail -f /var/log/mpd/mpd.log
tail -f /var/log/syslog
Попробуй сначала заставить работать Pulseaudio. Просто загрузите pulseaudio, загрузите модуль обнаружения RAOP, перечислите приемники, настройте приемник по умолчанию и попробуйте что-нибудь воспроизвести:
paplay /usr/share/sounds/alsa/Front_Center.wav
После того, как вы установили PulseAdio, попробуйте заставить MPD работать с ним.