W razie potrzeby możesz użyć modułu mpd, pulseaudio i raop2:
- mpd do zarządzania listami odtwarzania, biblioteką itp. (
sudo apt-get install mpd
)
- pulseaudio do zarządzania wyjściami audio: raop dla AirPlay lub dowolnego innego urządzenia wyjściowego, takiego jak gniazdo analogowe, HDMI, usługa przesyłania strumieniowego HTTP itp. (
sudo apt-get install pulseaudio
)
- moduł raop2 dla pulseaudio, jeśli oryginalny moduł raop wbudowany w pulseaudio nie działa
Musiałem zbudować pulseaudio ze źródła, aby uzyskać zaktualizowaną wersję modułu RAOP dla pulseaudio.
Oto, co zrobiłem, aby działało (może narzekać na brakujące pakiety, tylko sudo apt-get install
je):
Zainstaluj MPD
sudo apt-get install mpd
Zainstaluj PulseAudio
Wybór A: masz stare urządzenie AirPlay lub nie potrzebujesz przesyłania strumieniowego UDP.
To jest łatwiejsze, ale mniej kompatybilne.
sudo apt-get install pulseaudio
Wybór B: chcesz lepszej kompatybilności i obsługi zarówno przesyłania strumieniowego TCP, jak i UDP
Następnie potrzebujesz modułu raop2 dla pulseaudio, co oznacza budowanie PA ze źródła.
Zainstaluj git, jeśli jeszcze tego nie zrobiłeś i zbuduj pulseaudio (zobacz oficjalne instrukcje ):
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
Przy mojej instalacji musiałem ręcznie dowiązać libpulse.so.0 ręcznie:
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
lub, zgodnie z twoimi preferencjami:
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
Skonfiguruj wszystko
Wstępna konfiguracja MPD
Teraz musimy skonfigurować MPD:
sudo vi /etc/mpd.conf
W tym pliku ustaw następujące opcje:
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"
Będziemy musieli edytować dane wyjściowe, ale najpierw potrzebujemy nazwy zlewu pulseaudio.
PulseAudio tonie
Avahi / zeroconf jest fajny, ponieważ umożliwia wykrywanie urządzeń AirPlay (przez zeroconf / mDNS / Bonjour):
sudo apt-get install avahi
Teraz możemy uruchomić pulseaudio i spróbować załadować moduły RAOP:
pulseaudio --start --log-target=syslog -vvvv --log-level=debug
pacmd load-module module-raop-discover
pacmd list-sinks | grep name:
Oto wynik mojej konfiguracji:
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>
Następnie musisz /etc/mpd.conf
ponownie edytować i dodać następujące dane wyjściowe:
audio_output {
type "pulse"
name "Freebox Player"
sink "raop_output.Freebox-Player.local"
format "44100:24:1"
}
Dodaj jeden z tych bloków dla każdego urządzenia AirPlay, do którego chcesz przesyłać strumieniowo muzykę.
Konfiguracja PulseAudio
Ostatnią częścią jest ustawienie PA:
sudo vi /etc/pulse/client.conf
Odkomentuj autospawn = yes
, uczyni to PulseAudio rozpocznie się automatycznie, gdy jest to potrzebne.
sudo vi /etc/pulse/default.pa
Dodaj następujący wiersz na dole:
load-module module-raop-discover
Spowoduje to, że pulseaudio załaduje moduł wykrywania RAOP po uruchomieniu.
Ostatni krok
Powinno już działać. Uruchom MPD (zatrzymaj go najpierw, jeśli jest uruchomiony):
sudo /etc/init.d/mpd start
Poczekaj chwilę, zanim mój demon będzie mógł działać poprawnie, zajmuje co najmniej 10-15 sekund na moim RasPI.
Zaktualizuj swoją bibliotekę muzyczną (i poczekaj na jej zakończenie):
sudo apt-get install mpc
mpc update
Włącz wyjścia do woli (poniżej wyświetli się lista skonfigurowanych wyjść MPD i włącz pierwsze):
mpc outputs
mpc enable 1
Teraz użyj swojego ulubionego klienta MPD, aby odtwarzać muzykę. Korzystam ncmpcpp
z wiersza polecenia, a MPDroid na moim telefonie / tablecie.
Rozwiązywanie problemów
Uruchom mpd w trybie pełnym, pulseaudio z maksymalnym poziomem rejestrowania i monitoruj dzienniki:
mpd --verbose
pulseaudio --start --log-target=syslog --log-level=debug -vvvv
tail -f /var/log/mpd/mpd.log
tail -f /var/log/syslog
Najpierw spróbuj uruchomić pulseaudio. Wystarczy załadować pulseaudio, załadować moduł wykrywania RAOP, wyświetlić listę zlewów, skonfigurować domyślny zlew i spróbować coś odtworzyć:
paplay /usr/share/sounds/alsa/Front_Center.wav
Gdy już uruchomisz pulseaudio, spróbuj zmusić MPD do pracy z nim.