Gostaria de usar meu Raspberry Pi como um coletor PulseAudio que pode reproduzir áudio pela rede.
Para começar, quero que o Pulseaudio seja executado localmente e tenha vários erros. Estou usando a imagem Debian recomendada.
Qual é o melhor procedimento para colocar o PulseAudio em funcionamento?
Isto é o que eu tentei até agora:
Procedimento
Até agora, meu procedimento era algo como:
Instale o Pulseaudio e o VLC:
sudo apt-get install pulseaudio
Configure o GStreamer para usar o coletor pulseaudio:
gconftool-2 -t string --set /system/gstreamer/0.10/default/audiosink pulsesink
Carregue o módulo do kernel para o dispositivo de áudio
sudo modprobe snd_bcm2835
Execute o VLC com um mp3
vlc
Problemas
O VLC racha repetidamente, imprimindo este erro:
[0x7503d0] alsa audio output error: cannot write: Broken pipe
Respostas:
Eu consegui trabalhar no meu Raspberry Pi usando o coletor ALSA, com o seguinte procedimento:
Para instalar os arquivos necessários:
Para ativar o ALSA:
Para configurar a rede:
e descomente as linhas:
Para iniciar o servidor pulseaudio, use:
Você deve poder testar se ele funciona reproduzindo um arquivo wav com paplay (
sudo apt-get install pulseaudio-utils
) e também pela rede, selecionando o coletor no painel de controle de som do sistema.Você também poderá configurar no modo de todo o sistema com:
fonte
pulseaudio-module-zeroconf
está faltando na parte de instalação do apt-get. Deve mencionar talvez também opulseaudio --log-level=debug
para solucionar problemas. Na fonte de som (não no raspberry pi), você deve iniciarpaprefs
para visualizar facilmente o seu pulseaudio conf (se você tiver o X11). E não se esqueça de reiniciarpulseaudio
em caso de dúvida.Se você deseja que o pulseaudio inicie na inicialização, mas como um serviço no nível do usuário, você pode criar um arquivo de unidade systemd. Isso pode ajudar, pois o pulseaudio não prefere executar no modo de sistemas. https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/SystemWide/
Aqui está o serviço que escrevi em /etc/systemd/system/pulseaudio.service
Antes = diz para esperar até depois que o sound.target for inicializado. BusName = conecta ao D-Bus WantedBy = session.target é um padrão útil, mas eu realmente não sei o que ele faz.
fonte
~/.config/systemd/user/pulseaudio.service
e usar systemd com a--user
flag para evitar privilégios de root.Eu tive dificuldade em obter o pulseaudio em execução no Wheezy raspbian (28-10 2012) usando a saída analógica. A seguir, o que fiz apenas para fazê-lo funcionar no modo por sessão (não no modo sistema). O modo do sistema também pode funcionar, não tentei. A configuração do servidor exigirá mais trabalho. Encontrei essas informações em vários lugares, espero que reuni-las aqui ajude alguém.
Instale o pulseaudio e verifique se o usuário (por exemplo, eric) faz parte do grupo de áudio:
Altere o arquivo /etc/asound.conf da seguinte maneira. Isso configura o pulseaudio para ser usado como dispositivo alsa por padrão, para que os aplicativos o usem sem nenhuma configuração adicional. As duas primeiras declarações (incluindo a comentada) estavam no arquivo original.
Adicione as seguintes linhas ao /etc/pulse/daemon.conf:
trivial
é o método de qualidade mais baixa, mas usa cerca de 6% da CPU.src-sinc-fastest
também funcionou para mim, mas use cerca de 25% da CPU. Outros podem funcionar também. Mais tarde, não entendi bem a necessidade, mas parecia ser o ingrediente mágico. Você pode ler mais sobre isso aqui .Por fim, para silenciar o som entre as músicas, comente esta linha em /etc/pulse/default.pa da seguinte maneira:
Ainda existem algumas desistências quando duas fontes são reproduzidas ao mesmo tempo, se eu descobrir um remédio para isso, acrescentarei a esta resposta.
fonte
trivial
para mim.