Você pode usar os módulos mpd, pulseaudio e raop2, se necessário:
- mpd para gerenciar playlists, biblioteca, etc (
sudo apt-get install mpd
)
- pulseaudio para gerenciar saídas de áudio: raop para AirPlay ou qualquer outro dispositivo de saída, como tomada analógica, HDMI, serviço de streaming http, etc (
sudo apt-get install pulseaudio
)
- módulo raop2 para pulseaudio se o módulo raop original incorporado no pulseaudio não funcionar
Eu tive que construir o pulseaudio a partir da fonte para obter uma versão atualizada do módulo RAOP para o pulseaudio.
Aqui está o que eu fiz para fazê-lo funcionar (pode se queixar de pacotes ausentes, apenas sudo apt-get install
eles):
Instalar MPD
sudo apt-get install mpd
Instale o PulseAudio
Opção A: você possui um dispositivo AirPlay antigo ou não precisa de streaming UDP.
É mais fácil, mas menos compatível.
sudo apt-get install pulseaudio
Opção B: você deseja melhor compatibilidade e suporte para streaming TCP e UDP
Então você precisa do módulo raop2 para o pulseaudio, o que significa construir PA a partir da fonte.
Instale o git se você ainda não o criou e construa o pulseaudio (consulte as instruções oficiais ):
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
Na minha instalação, tive que ligar simbolicamente 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
ou, de acordo com sua preferência:
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
Configure tudo
Configuração inicial do MPD
Agora precisamos configurar o MPD:
sudo vi /etc/mpd.conf
Nesse arquivo, defina o seguinte:
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"
Precisamos editar a saída, mas precisamos primeiro do nome do coletor de áudio pulsea.
Dissipadores PulseAudio
É bom ter o Avahi / zeroconf porque permitirá a descoberta de dispositivos AirPlay (por meio do zeroconf / mDNS / Bonjour):
sudo apt-get install avahi
Agora podemos iniciar o pulseaudio e tentar carregar os módulos RAOP:
pulseaudio --start --log-target=syslog -vvvv --log-level=debug
pacmd load-module module-raop-discover
pacmd list-sinks | grep name:
Aqui está a saída na minha instalação:
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>
Você precisa editar /etc/mpd.conf
novamente e adicionar as seguintes saídas:
audio_output {
type "pulse"
name "Freebox Player"
sink "raop_output.Freebox-Player.local"
format "44100:24:1"
}
Adicione um desses blocos para cada dispositivo AirPlay para o qual você deseja transmitir música.
Configuração PulseAudio
A última parte é configurar o PA:
sudo vi /etc/pulse/client.conf
Não comentado autospawn = yes
, isso fará o pulseaudio iniciar automaticamente quando necessário.
sudo vi /etc/pulse/default.pa
Adicione a seguinte linha na parte inferior:
load-module module-raop-discover
Isso fará com que o pulseaudio carregue o módulo de descoberta RAOP quando ele for iniciado.
Passo final
Deve estar funcionando agora. Inicie o MPD (pare primeiro se estiver em execução):
sudo /etc/init.d/mpd start
Espere um pouco, o RasPI leva pelo menos 10 a 15 segundos para que o daemon possa funcionar corretamente.
Atualize sua biblioteca de músicas (e aguarde o término):
sudo apt-get install mpc
mpc update
Habilite as saídas à vontade (a seguir listará as saídas MPD configuradas e habilite a primeira):
mpc outputs
mpc enable 1
Agora use seu cliente MPD favorito para tocar música. Estou usando ncmpcpp
na linha de comando e o MPDroid no meu telefone / tablet.
Solução de problemas
Inicie o mpd em verbose, pulseaudio com nível máximo de log e monitore os logs:
mpd --verbose
pulseaudio --start --log-target=syslog --log-level=debug -vvvv
tail -f /var/log/mpd/mpd.log
tail -f /var/log/syslog
Tente fazer o pulseaudio funcionar primeiro. Basta carregar o pulseaudio, carregar o módulo de descoberta RAOP, listar as pias, configurar o coletor padrão e tentar reproduzir algo:
paplay /usr/share/sounds/alsa/Front_Center.wav
Depois de ter o pulseaudio funcionando, tente fazer o MPD funcionar com ele.