MPD con pulseaudio

MPD con pulseaudio

Recientemente hice una instalación limpia de Ubuntu 14.10 y una vez más tengo problemas con MPD. Creo que logré solucionarlo la última vez, pero no estoy seguro de cómo.

Mi problema es poder utilizar un altavoz bluetooth externo con MPD. Aún mejor, me gustaría poder utilizar el altavoz conectado y el bluetooth al mismo tiempo.

Desafortunadamente, MPD no se muestra en las aplicaciones que producen audio en la configuración de audio de Gnome y, por lo tanto, ignora mi directiva de usar el altavoz bluetooth. Creo que esto se debe a que MPD está usando Alsa en lugar de Pulseaudio.

Ahora, en mi mpd.conf tengo las líneas

audio_output {
    type        "pulse"
    name        "MPD"
#   server      "localhost"
}

También intenté descomentar la línea del servidor, pero en este caso, MPD ni siquiera se inicia.

Para aclarar, MPD se ejecuta bajo el usuario mpd, que está bajo los grupos pulsey pulse-access, pero esto no parece ser suficiente.

Ahora, creo que puedo ejecutar MPD con mi propio usuario, y esto podría solucionar algunos de los problemas, pero prefiero no hacerlo, ya que es posible que otros usuarios de esta PC también quieran escuchar música.

¿Cuál es la forma correcta de hacer que MPD use Pulseaudio (o hacer lo que sea necesario para conectarlo a otros parlantes además del predeterminado?)

Respuesta1

A diferencia de MPD en el modo de todo el sistema, PulseAudio se ejecuta en el espacio de usuario. Esto significa que todas las configuraciones de pulseaudio, incluido el descubrimiento de Bluetooth y el suministro de un receptor de audio Bluetooth, se realizan desde una sesión de usuario.

El demonio MPD, cuando se ejecuta en todo el sistema, no puede acceder a los dispositivos Pulse Audio que se ejecutan en una sesión de usuario. Como en teoría es posible ejecutar Pulse Audio en modo de todo el sistema, esto esno recomendado, al menos no deberíamos hacerlo en una configuración de escritorio. Entonces sería una opción mucho mejor ejecutar MPD desde el espacio de usuario.

Para poder seguir utilizando los dispositivos que proporciona un servidor PulseAudio en ejecución, utilizamos capacidades de transmisión TCP de PulseAudio y MPD.

Esto requiere lo siguiente en /etc/mpd.conf:

audio_output {
       type     "pulse"
       name     "My PULSE Device"
       server   "localhost"
}

Luego también necesitamos cargar el protocolo TCP para transmitir a un servidor PulseAudio en ejecución. Esto se puede agregar al archivo /etc/pulse/default.paque se cargará cada vez que un usuario inicie sesión (o iniciarse desde CLI para realizar pruebas con pacmd load-module).

load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 # IP of localhost

Descargo de responsabilidad:Esto debería funcionar para cambiar a un dispositivo de audio Bluetooth, pero no pude probarlo porque mi dongle Bluetooth tiene problemas en mi sistema de prueba 14.10.

Respuesta2

La solución propuesta por @Takkat también me funcionó con una pequeña modificación:

En Debian Buster, solo tuve que reemplazar localhostcon 127.0.0.1la opción mpd.conf server, pero mpd intentó conectarse con la dirección IPv6 ::1y falló con:

ERROR: Failed to open "My PULSE Device" [pulse]; failed to connect: Access denied

(Perdón por la respuesta en lugar del comentario, soy nuevo aquí y aún no tengo suficientes puntos para comentar. No hay problema para mí si alguien mueve o elimina este mensaje).

información relacionada