MPD mit Pulseaudio

MPD mit Pulseaudio

Ich habe vor Kurzem eine Neuinstallation von Ubuntu 14.10 durchgeführt und habe wieder Probleme mit MPD. Ich glaube, ich habe es letztes Mal beheben können, bin mir aber nicht sicher, wie.

Mein Problem besteht darin, einen externen Bluetooth-Lautsprecher mit MPD verwenden zu können. Noch besser wäre es, wenn ich sowohl den angeschlossenen als auch den Bluetooth-Lautsprecher gleichzeitig verwenden könnte.

Leider wird MPD in den Gnome-Audioeinstellungen nicht unter den Anwendungen angezeigt, die Audio produzieren, und ignoriert daher meine Anweisung, den Bluetooth-Lautsprecher zu verwenden. Ich denke, das liegt daran, dass MPD Alsa statt Pulseaudio verwendet.

Nun habe ich in meiner mpd.conf die Zeilen

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

Ich habe auch versucht, die Serverzeile zu dekommentieren, aber in diesem Fall startet MPD nicht einmal.

Zur Klarstellung: MPD wird unter dem Benutzer ausgeführt mpd, der sich unter den Gruppen pulseund befindet pulse-access, aber das scheint nicht auszureichen.

Ich bin überzeugt, dass ich MPD unter meinem eigenen Benutzernamen ausführen kann. Dadurch könnten einige der Probleme behoben werden. Das möchte ich aber lieber nicht, da andere Benutzer dieses PCs möglicherweise auch Musik hören möchten.

Wie lässt man MPD Pulseaudio richtig verwenden (oder was auch immer nötig ist, um es an andere als die Standardlautsprecher anzuschließen?)

Antwort1

Im Gegensatz zu MPD im systemweiten Modus läuft PulseAudio im Benutzerbereich. Das bedeutet, dass alle PulseAudio-Einstellungen, einschließlich der Bluetooth-Erkennung und der Bereitstellung eines Bluetooth-Audio-Sinks, von einer Benutzersitzung aus vorgenommen werden.

Der MPD-Daemon kann, wenn er systemweit ausgeführt wird, nicht auf Pulse Audio-Geräte zugreifen, die in einer Benutzersitzung ausgeführt werden. Da es theoretisch möglich ist, Pulse Audio im systemweiten Modus auszuführen, ist diesnicht empfohlen, zumindest sollten wir dies nicht in einer Desktop-Konfiguration tun. Es wäre dann eine viel bessere Option, MPD aus dem Userspace auszuführen.

Um weiterhin Geräte nutzen zu können, die ein laufender PulseAudio-Server bereitstellt, verwenden wir die TCP-Streaming-Funktionen von PulseAudio und MPD.

Hierzu ist folgendes erforderlich /etc/mpd.conf:

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

Dann müssen wir auch das TCP-Protokoll laden, um auf einen laufenden PulseAudio-Server zu streamen. Dies kann dem hinzugefügt werden, /etc/pulse/default.padamit es bei jeder Benutzeranmeldung geladen wird (oder zum Testen mit über die CLI gestartet werden kann pacmd load-module).

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

Haftungsausschluss:Dies sollte beim Umschalten auf ein Bluetooth-Audiogerät funktionieren, ich konnte es jedoch nicht testen, da mein Bluetooth-Dongle auf meinem 14.10-Testsystem Probleme hat.

Antwort2

Die von @Takkat vorgeschlagene Lösung hat bei mir mit einer kleinen Modifikation auch funktioniert:

Unter Debian Buster musste ich nur localhostdurch die Option 127.0.0.1in mpd.conf ersetzen server, da mpd andernfalls versuchte, eine Verbindung mit der IPv6-Adresse herzustellen ::1, und dies mit folgendem Fehler fehlschlug:

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

(Entschuldigen Sie die Antwort statt eines Kommentars. Ich bin neu hier und habe noch nicht genügend Punkte, um einen Kommentar zu schreiben. Für mich ist es kein Problem, wenn jemand diese Nachricht verschiebt oder entfernt.)

verwandte Informationen