MPD com pulseaudio

MPD com pulseaudio

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 pulsee 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.papara 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 localhostpela opção 127.0.0.1mpd.conf server, caso contrário o mpd tentou se conectar com o endereço IPv6 ::1e 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).

informação relacionada