Puede usar el módulo mpd, pulseaudio y raop2, si es necesario:
- mpd para gestionar listas de reproducción, biblioteca, etc. (
sudo apt-get install mpd
)
- pulseaudio para gestionar salidas de audio: raop para AirPlay, o cualquier otro dispositivo de salida como conector analógico, HDMI, servicio de transmisión http, etc. (
sudo apt-get install pulseaudio
)
- módulo raop2 para pulseaudio si el módulo raop original integrado en pulseaudio no funciona
Tuve que construir pulseaudio desde la fuente para obtener una versión actualizada del módulo RAOP para pulseaudio.
Esto es lo que hice para que funcione (puede quejarse de paquetes faltantes, solo sudo apt-get install
ellos):
Instalar MPD
sudo apt-get install mpd
Instalar PulseAudio
Opción A: tiene un dispositivo AirPlay antiguo o no necesita transmisión UDP.
Es más fácil pero menos compatible.
sudo apt-get install pulseaudio
Opción B: desea una mejor compatibilidad y soporte para transmisión TCP y UDP
Entonces necesita el módulo raop2 para pulseaudio, lo que significa construir PA desde la fuente.
Instala git si aún no lo has hecho y crea pulseaudio (consulta las instrucciones oficiales ):
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
En mi configuración, tuve que vincular libpulse.so.0 manualmente:
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, a su preferencia:
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 todo
Configuración inicial de MPD
Ahora necesitamos configurar MPD:
sudo vi /etc/mpd.conf
En ese archivo, configure lo siguiente:
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"
Tendremos que editar la salida, pero primero necesitamos el nombre del receptor de pulseaudio.
PulseAudio se hunde
Es bueno tener Avahi / zeroconf porque permitirá el descubrimiento de dispositivos AirPlay (a través de zeroconf / mDNS / Bonjour):
sudo apt-get install avahi
Ahora podemos iniciar pulseaudio e intentar cargar los módulos RAOP:
pulseaudio --start --log-target=syslog -vvvv --log-level=debug
pacmd load-module module-raop-discover
pacmd list-sinks | grep name:
Aquí está la salida en mi configuración:
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>
Luego necesita editar /etc/mpd.conf
nuevamente y agregar las siguientes salidas:
audio_output {
type "pulse"
name "Freebox Player"
sink "raop_output.Freebox-Player.local"
format "44100:24:1"
}
Agregue uno de estos bloques para cada dispositivo AirPlay al que desee transmitir música.
Configuración de PulseAudio
La última parte es configurar PA:
sudo vi /etc/pulse/client.conf
Sin comentar autospawn = yes
, esto hará que pulseaudio se inicie automáticamente cuando sea necesario.
sudo vi /etc/pulse/default.pa
Agregue la siguiente línea en la parte inferior:
load-module module-raop-discover
Esto hará que pulseaudio cargue el módulo de descubrimiento RAOP cuando se inicie.
Último paso
Debería estar funcionando ahora. Inicie MPD (deténgalo primero si se está ejecutando):
sudo /etc/init.d/mpd start
Espera un poco, toma al menos 10-15 segundos en mi RasPI antes de que el demonio pueda funcionar correctamente.
Actualice su biblioteca de música (y espere a que termine):
sudo apt-get install mpc
mpc update
Habilite las salidas a voluntad (lo siguiente enumerará las salidas MPD configuradas y habilitará la primera):
mpc outputs
mpc enable 1
Ahora use su cliente MPD favorito para reproducir música. Estoy usando ncmpcpp
en la línea de comandos y MPDroid en mi teléfono / tableta.
Solución de problemas
Inicie mpd en forma detallada, pulseaudio con el nivel de registro máximo y supervise los registros:
mpd --verbose
pulseaudio --start --log-target=syslog --log-level=debug -vvvv
tail -f /var/log/mpd/mpd.log
tail -f /var/log/syslog
Intenta hacer que pulseaudio funcione primero. Simplemente cargue pulseaudio, cargue el módulo de descubrimiento RAOP, enumere los sumideros, configure el sumidero predeterminado e intente reproducir algo:
paplay /usr/share/sounds/alsa/Front_Center.wav
Una vez que pulseaudio funcione, intente que MPD funcione con él.