Ви можете використовувати mpd, pulseaudio та модуль raop2, якщо потрібно:
- mpd для керування списками відтворення, бібліотекою тощо (
sudo apt-get install mpd
)
- pulseaudio для управління аудіовиходами: рейп для 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, що означає побудову ПА з джерела.
Встановіть 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 миє
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
Остання частина - налаштування ПА:
sudo vi /etc/pulse/client.conf
Зауважте autospawn = yes
, що це зробить імпульсний аудіозапуск автоматично, коли це потрібно.
sudo vi /etc/pulse/default.pa
Додайте наступний рядок внизу:
load-module module-raop-discover
Це дозволить імпульсно завантажувати модуль виявлення 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, завантажте модуль виявлення RAOP, перерахуйте раковини, встановіть мийку за замовчуванням і спробуйте щось відтворити:
paplay /usr/share/sounds/alsa/Front_Center.wav
Після того, як у вас буде працювати pulseaudio, спробуйте змусити MPD працювати з ним.