Recentemente fiz uma instalação limpa do Ubuntu 14.10 e mais uma vez tive problemas com o MPD. Acho que consegui consertar da última vez, mas não sei como.
Meu problema é poder usar um alto-falante bluetooth externo com MPD. Melhor ainda, gostaria de poder usar o alto-falante conectado e o alto-falante Bluetooth ao mesmo tempo.
Infelizmente, o MPD não aparece nos aplicativos que produzem áudio nas configurações de áudio do Gnome e, portanto, ignora minha diretiva para usar o alto-falante bluetooth. Acho que isso ocorre porque o MPD está usando Alsa em vez de Pulseaudio.
Agora, no meu mpd.conf eu tenho as linhas
audio_output {
type "pulse"
name "MPD"
# server "localhost"
}
Também tentei descomentar a linha do servidor, mas neste caso o MPD nem inicia.
Para esclarecer, o MPD está rodando no usuário mpd
, que está nos grupos pulse
e pulse-access
, mas isso não parece ser suficiente.
Agora, acredito que posso executar o MPD com meu próprio usuário, e isso pode resolver alguns dos problemas, mas prefiro não, pois outros usuários deste PC também podem querer ouvir música.
Qual é a maneira correta de fazer o MPD usar o Pulseaudio (ou fazer o que for necessário para conectá-lo a outros alto-falantes além do padrão?)
Responder1
Ao contrário do MPD no modo de todo o sistema, o PulseAudio está sendo executado no espaço do usuário. Isso significa que todas as configurações do pulseaudio, incluindo a descoberta de Bluetooth e o fornecimento de um coletor de áudio Bluetooth, são feitas a partir de uma sessão do usuário.
O daemon MPD, quando executado em todo o sistema, não consegue acessar dispositivos Pulse Audio em execução em uma sessão de usuário. Como é, em teoria, possível executar o Pulse Audio no modo de todo o sistema, isso énão recomendado, pelo menos não devemos fazer isso em uma configuração de desktop. Seria então uma opção muito melhor executar o MPD no espaço do usuário.
Para ainda poder usar os dispositivos que um servidor PulseAudio em execução fornece, usamos recursos de streaming TCP de ambos, PulseAudio e MPD.
Isso requer o seguinte em /etc/mpd.conf
:
audio_output {
type "pulse"
name "My PULSE Device"
server "localhost"
}
Em seguida, também precisamos carregar o protocolo TCP para transmitir para um servidor PulseAudio em execução. Isso pode ser adicionado ao arquivo /etc/pulse/default.pa
para ser carregado sempre que um usuário fizer login (ou iniciado a partir da CLI para teste com pacmd load-module
).
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 # IP of localhost
Isenção de responsabilidade:Isso deve funcionar para mudar para um dispositivo de áudio Bluetooth, mas não pude testar porque meu dongle Bluetooth tem problemas em meu sistema de teste 14.10.
Responder2
A solução proposta por @Takkat também funcionou para mim com uma pequena modificação:
No Debian Buster, eu apenas tive que substituir localhost
pela opção 127.0.0.1
mpd.conf server
, caso contrário o mpd tentou se conectar com o endereço IPv6 ::1
e falhou com:
ERROR: Failed to open "My PULSE Device" [pulse]; failed to connect: Access denied
(Desculpe pela resposta em vez de comentar, sou novo aqui e ainda não tenho pontos suficientes para comentar. Não tem problema para mim se alguém mover ou remover esta mensagem).