È possibile utilizzare il modulo mpd, pulseaudio e raop2, se necessario:
- mpd per la gestione di playlist, libreria, ecc. (
sudo apt-get install mpd
)
- pulseaudio per la gestione delle uscite audio: raop per AirPlay o qualsiasi altro dispositivo di uscita come jack analogico, HDMI, servizio di streaming http, ecc.
sudo apt-get install pulseaudio
)
- modulo raop2 per pulseaudio se il modulo raop originale incorporato in pulseaudio non funziona
Ho dovuto costruire pulseaudio dalla fonte per ottenere una versione aggiornata del modulo RAOP per pulseaudio.
Ecco cosa ho fatto per farlo funzionare (potrebbe lamentarsi dei pacchetti mancanti, solo sudo apt-get install
loro):
Installa MPD
sudo apt-get install mpd
Installa PulseAudio
Scelta A: hai un vecchio dispositivo AirPlay o non hai bisogno dello streaming UDP.
È più facile ma meno compatibile.
sudo apt-get install pulseaudio
Scelta B: vuoi una migliore compatibilità e supporto per lo streaming TCP e UDP
Quindi è necessario il modulo raop2 per pulseaudio, che significa costruire PA dalla sorgente.
Installa git se non l'hai già fatto e crea pulseaudio (vedi le istruzioni ufficiali ):
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
Durante la mia installazione, ho dovuto ricollegare manualmente 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
o, secondo le tue preferenze:
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
Configura tutto
Configurazione iniziale MPD
Ora dobbiamo configurare MPD:
sudo vi /etc/mpd.conf
In quel file, imposta quanto segue:
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"
Dovremo modificare l'output, ma prima abbiamo bisogno del nome del sink di pulseaudio.
Lavelli PulseAudio
Avahi / zeroconf è bello avere perché consentirà la scoperta di dispositivi AirPlay (tramite zeroconf / mDNS / Bonjour):
sudo apt-get install avahi
Ora possiamo avviare pulseaudio e provare a caricare i moduli RAOP:
pulseaudio --start --log-target=syslog -vvvv --log-level=debug
pacmd load-module module-raop-discover
pacmd list-sinks | grep name:
Ecco l'output sulla mia configurazione:
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>
È quindi necessario modificare /etc/mpd.conf
nuovamente e aggiungere i seguenti output:
audio_output {
type "pulse"
name "Freebox Player"
sink "raop_output.Freebox-Player.local"
format "44100:24:1"
}
Aggiungi uno di questi blocchi per ogni dispositivo AirPlay su cui desideri trasmettere musica in streaming.
Configurazione PulseAudio
L'ultima parte è configurare PA:
sudo vi /etc/pulse/client.conf
Uncomment autospawn = yes
, questo farà sì che pulseaudio si avvii automaticamente quando è necessario.
sudo vi /etc/pulse/default.pa
Aggiungi la seguente riga in fondo:
load-module module-raop-discover
In questo modo pulseaudio caricherà il modulo di rilevamento RAOP all'avvio.
Passo finale
Dovrebbe funzionare ora. Avvia MPD (fermalo prima se è in esecuzione):
sudo /etc/init.d/mpd start
Aspetta un po ', ci vogliono almeno 10-15 secondi sul mio RasPI prima che il demone possa funzionare correttamente.
Aggiorna la tua libreria musicale (e attendi che finisca):
sudo apt-get install mpc
mpc update
Abilita uscite a piacimento (di seguito elencheremo le uscite MPD configurate e abiliterà la prima):
mpc outputs
mpc enable 1
Ora usa il tuo client MPD preferito per ascoltare un po 'di musica. Sto usando ncmpcpp
dalla riga di comando e MPDroid sul mio telefono / tablet.
Risoluzione dei problemi
Avvia mpd in dettaglio, pulseaudio con il massimo livello di registrazione e monitora i log:
mpd --verbose
pulseaudio --start --log-target=syslog --log-level=debug -vvvv
tail -f /var/log/mpd/mpd.log
tail -f /var/log/syslog
Prova a far funzionare pulseaudio per primo. Basta caricare pulseaudio, caricare il modulo di rilevamento RAOP, elencare i sink, impostare il sink predefinito e provare a riprodurre qualcosa:
paplay /usr/share/sounds/alsa/Front_Center.wav
Una volta che pulseaudio funziona, prova a far funzionare MPD con esso.