Wenn ich versuche, mpd über pulseaudio abzuspielen, meldet mpd.log:
impulsausgang: "Pink ROCKI" konnte nicht aktiviert werden [puls]: pa_context_connect () ist fehlgeschlagen: Verbindung abgelehnt
- Pulse scheint einwandfrei zu funktionieren, da pacmd list-sinks alle meine Pulssenken anzeigt, das Audio des MB-Browsers über die Standardsenke einwandfrei abgespielt wird und VLC über jeden von ihnen Sound wiedergeben kann.
- mpd funktioniert gut, wenn ich die Ausgabe über alsa anstelle von Puls sende
- Sowohl mpd als auch pulseaudio laufen unter meinem Account (fred).
- Fred, MPD und Pulseaudio sind alle Mitglieder der Puls-, Pulszugriffs- und Audiogruppen.
- Ich habe dies sogar mit verschiedenen Pulseaudio-Builds versucht: dem 4.0 mit Ubuntu 14.04, dem experimentellen RAOP2 mit Puls 4.0 und dem experimentellen RAOP2 mit Puls 5.0. mpd funktioniert mit keinem von ihnen.
Meine mpd.conf-Datei ist Vanille; Der Pulsabschnitt ist der generische:
audio_output {
type "pulse"
name "General Pulse"
}
Obwohl, wie Laugeo weiter unten vorschlägt, ich auch versucht habe, eine einzelne Spüle anzugeben, beide mit Namen:
audio_output {
type "pulse"
name "ROCKI"
sink "raop_output.ASAP1826T.local"
}
und nach Index #:
audio_output {
type "pulse"
name "ROCKI"
sink "4"
}
Was soll ich als nächstes versuchen? Könnte es helfen, pulseaudio so zu konfigurieren, dass es als Systemdienst ausgeführt wird?
Dies ist unter Ubuntu 14.04, pulseaudio 4.0 (und 5.0), Music Player Daemon 0.18.7
Update: Ich habe diesen Blog gefunden, in dem der Blogger Louiz das gleiche (oder sehr ähnliche) Problem gelöst zu haben scheint:
MPD versucht anscheinend, als mein eigener Benutzer einen neuen Pulseaudio-Prozess zu erzeugen, und er schlägt fehl, weil er bereits ausgeführt wird. Ich konnte nicht verstehen, warum es nicht einfach die vorhandene pulseaudio-Instanz verwenden konnte, ohne zu versuchen, eine neue zu erzeugen.
Ich habe dank dieses Beitrags verstanden .
MPD konnte die bereits ausgeführte pulseaudio-Instanz nicht finden, da die Umgebungsvariable XDG_RUNTIME_DIR nicht festgelegt wurde und pulseaudio dort seine Dateien speichert (Socket, Prozess-PID usw.).
Ich habe seine Lösung ausprobiert:
Erstellen einer neuen Datei /etc/systemd/system/mpd.service.d/fixenv.conf mit:
[Service] Environment = XDG_RUNTIME_DIR = / run / user / 1000
(Ersetzen Sie 1000 durch die UNIX-ID Ihres Benutzers.)
Ich habe neu gestartet und XDG_RUNTIME_DIR wurde korrekt eingestellt, und Puls hat seine PID-Datei im Verzeichnis / run / user / 1000 / puls / abgelegt (meine Benutzer-ID ist 1000), aber ich erhalte immer noch den gleichen Fehler von mpd:
impulsausgang: "ROCKI" konnte nicht aktiviert werden [puls]: pa_context_connect () ist fehlgeschlagen: Verbindung abgelehnt
Ich lerne jeden Tag mehr über Linux, aber Sockets, Prozess-Pids, systemd (soll Ubuntu nicht upstart verwenden? Systemd scheint zu laufen und Dinge zu starten) usw. liegen momentan alle über meiner Gehaltsstufe - ich ' Ich bin im Wald verloren.
quelle
Antworten:
Schließlich besser als Pulseaudio Daemon - Modus, ist die beste Lösung , da : es ist über das Laufen mpd wie dich selbst (und nicht mpd Benutzer) , so dass Sie kein Problem haben , Ihre eigene Sitzung Pulseaudio zu verwenden.
Eine andere Antwort, aber getestet und funktioniert auch:
Konfigurieren Sie pulseaudio so, dass es als "Daemon-Modus" anstelle des Standard- "Benutzermodus" ausgeführt wird.
sudo gedit /etc/init/pulseaudio.conf
Zeile 20 aus und entfernen Sie den Kommentar , um Folgendes
#
zu erhalten:start on runlevel [2345]
Speichern und Beenden von gedit.
sudo usermod -aG pulse,pulse-access mpd
sudo usermod -aG pulse,pulse-access your-login
Ersetzen Sie im zweiten Befehl "your-login".
Jetzt neu starten: hoffentlich funktioniert es.
Hinweis: Auf dieser Seite finden Sie Informationen, warum Sie den Pulseaudio-Daemon-Modus vermeiden müssen, aber ich finde ihn auf einem Einzelbenutzer-PC in Ordnung (insbesondere sehe ich nicht mehr CPU- / Speicherauslastung als im Benutzermodus).
quelle
Die XDG_RUNTIME_DIR-Lösung hat bei mir funktioniert, es ist jedoch nicht erforderlich, eine Datei in / etc / systemd / system zu erstellen. Fügen Sie einfach diese Zeile in /etc/init.d/mpd hinzu:
Ich habe mpd bereits als meinen eigenen Benutzer und als "Audio" -Gruppe in /etc/mpd.conf angegeben.
quelle
Sie können versuchen, die pulseaudio-Senke in der MPD-Konfigurationsdatei anzugeben:
Führen Sie diesen Befehl in einem Terminal aus, um Pulseaudio-Senken anzuzeigen:
pactl list short sinks
Es wird etwas ausgegeben wie:
Wählen Sie Ihre Hauptspüle (die zweite in meinem Fall, weil ich keinen HDMI-Sound habe) und kopieren Sie den Namen in mpd.conf audio_output:
Audioausgang {
}}
quelle