Quando tento reproduzir o mpd por meio de relatórios pulseaudio, mpd.log:
pulse_output: Falha ao habilitar "Pink ROCKI" [pulse]: pa_context_connect () falhou: Conexão recusada
- O Pulse parece estar funcionando bem, já que o pacmd list-sinks mostra todos os meus impulsos de pulso, o áudio do navegador meb toca bem no coletor padrão e o VLC pode reproduzir som em qualquer um deles.
- o mpd funciona bem se eu enviar a saída por meio de alsa em vez de pulso
- O mpd e o pulseaudio estão sendo executados na minha conta (fred).
- fred, mpd e pulseaudio são todos membros dos grupos de pulso, acesso por pulso e áudio.
- Eu até tentei isso com diferentes builds de pulseaudio: o 4.0 que vem com o Ubuntu 14.04, RAOP2 experimental construído com pulso 4.0 e o RAOP2 experimental construído com pulso 5.0. o mpd não funcionará com nenhum deles.
Meu arquivo mpd.conf é baunilha; a seção de pulso é a genérica:
audio_output {
type "pulse"
name "General Pulse"
}
Embora, como laugeo sugere abaixo, eu também tentei especificar um coletor individual, ambos por nome:
audio_output {
type "pulse"
name "ROCKI"
sink "raop_output.ASAP1826T.local"
}
e pelo índice #:
audio_output {
type "pulse"
name "ROCKI"
sink "4"
}
O que devo tentar em seguida? Poderia configurar o pulseaudio para ser executado como uma ajuda de serviço do sistema?
Isto está no Ubuntu 14.04, pulseaudio 4.0 (e 5.0), Music Player Daemon 0.18.7
Atualização: encontrei este blog onde o blogueiro Louiz parece ter resolvido o mesmo (ou muito similar) problema:
MPD aparentemente tenta gerar um novo processo pulseaudio, como o meu próprio
usuário, e ele falha porque já está em execução. Eu não pude
entender por que não poderia usar apenas a instância pulseaudio existente,
sem tentar gerar um novo.
Entendi, graças a esta postagem .
O MPD não conseguiu encontrar a instância pulseaudio já em execução porque o
variável de ambiente XDG_RUNTIME_DIR não foi definida, e onde
O pulseaudio armazena seus arquivos (o soquete, o processo pid, etc).
Eu tentei a solução dele:
criando um novo arquivo /etc/systemd/system/mpd.service.d/fixenv.conf
contendo:
[Serviço] Ambiente = XDG_RUNTIME_DIR = / run / user / 1000
(Substitua 1000 pelo ID do UNIX do seu usuário.)
Eu reiniciei e XDG_RUNTIME_DIR foi definido corretamente e o pulso colocou o arquivo pid no diretório / run / user / 1000 / pulse / (meu ID de usuário é 1000), mas ainda recebo o mesmo erro do mpd:
pulse_output: falha ao habilitar "ROCKI" [pulse]: pa_context_connect () falhou: conexão recusada
Estou aprendendo mais sobre o Linux todos os dias, mas soquetes, process pids, systemd (o Ubuntu não deveria usar o upstart? o systemd parece estar rodando e lançando coisas), etc. estão acima da minha nota salarial agora - Estou perdido na floresta.