Einfache Erklärung
Wenn mpd abgespielt wird und der Ton versucht, über eine andere Anwendung ( x) abzuspielen , wird kein Ton von x ausgegeben.
Wenn der Ton einer anderen Anwendung, x , abgespielt wird und mpd versucht zu spielen, wird kein Ton von mpd ausgegeben, während der Ton von x weiter abgespielt wird .
Einzelheiten
Ich habe dieses Problem zum ersten Mal bei Flash bemerkt, und dies ist weiterhin das häufigste Szenario. Ich habe eine Frage dazu gestellt, bevor mir klar wurde, dass sie nicht ausschließlich mit Flash zusammenhängt, sondern etwas mit mpd zu tun hat.
Meine größte Frustration kommt von dem Versuch, mpd wieder zum Laufen zu bringen, da ich anscheinend keine Methode festlegen kann. Manchmal pulseaudio -k
scheint es zu helfen, manchmal sudo /etc/init.d/mpd restart
töten andere Chrom (aufgrund von Flash) mit SIGTERM
. Meistens ist es eine Kombination der oben genannten.
Ich denke, das könnte daran liegen, dass ich mpd als anderer Benutzer ausführe und pulseaudio verwende. Es wird nicht als Root oder aktueller Benutzer ausgeführt. Außerdem wird mpd mit Impulsunterstützung kompiliert.
Ich habe zahlreiche Dinge ausprobiert, konnte aber ehrlich gesagt nicht rezitieren, wie es schon einige Zeit her ist. Ich würde lieber nicht ohne eine Richtung herumstöbern, aber ich würde dieses Problem gerne ein für alle Mal beheben.
mpd.conf
Vereinfacht durch Entfernen von Kommentaren / Leerzeilen.
music_directory "/var/lib/mpd/music"
playlist_directory "/var/lib/mpd/playlists"
db_file "/var/lib/mpd/tag_cache"
log_file "/var/log/mpd/mpd.log"
pid_file "/var/run/mpd/pid"
state_file "/var/lib/mpd/state"
user "mpd"
bind_to_address "wilson"
input {
plugin "curl"
}
audio_output {
type "pulse"
name "My Pulse Output"
}
filesystem_charset "UTF-8"
id3v1_encoding "UTF-8"
Frage
Um dies zu beantworten: Weiß jemand, was dies verursacht, oder wie man es behebt, ohne mpd als aktuellen Benutzer auszuführen?
quelle
Antworten:
Ich hatte dieses Problem, als ich anfing, mpd zu verwenden, aber es ist schon einige Zeit her, daher kann ich mich nicht genau erinnern, was ich getan habe, um es zu beheben!
Haben Sie PulseAudio-Einstellungen installiert? Ich habe diesen Tipp in einem Forum gefunden:
sudo apt-get install paprefs
Öffnen Sie dann die PulseAudio-Einstellungen über das Menü: System-> Einstellungen-> PulseAudio-Einstellungen Klicken Sie auf die Registerkarte Netzwerkserver, aktivieren Sie das Kontrollkästchen "Netzwerkzugriff auf lokale Audiogeräte aktivieren" und aktivieren Sie schließlich das Kontrollkästchen "Keine Authentifizierung erforderlich". Starten Sie danach mpd neu:
sudo /etc/init.d/mpd restart
Allerdings ... Ich habe gerade festgestellt, dass mpd für mich gut funktioniert und ich keinen "Netzwerkzugriff auf lokale Audiogeräte" aktiviert habe.
Ich denke, Sie haben vielleicht Recht damit, dass Sie mpd als aktuellen Benutzer ausführen müssen, was ich auch tue. (Ich habe keine Ahnung, warum das so ist!)
Eine einfache Anleitung zum Einrichten von mpd für die Ausführung als Benutzer finden Sie hier: http://gmpc.wikia.com/wiki/MPD_INSTALL_USER_SERVICE_UBUNTU
Um es zusammenzufassen, da Sie bereits mpd installiert haben:
1.) Hör auf:
sudo update-rc.d mpd disable
2.) Kopieren Sie Ihre mpdconf in Ihr Home-Verzeichnis (als .mpdconf) und ändern Sie die folgenden Einträge in Orte, auf die Ihr Benutzer zugreifen und schreiben kann:
Die Seite, von der ich dies nehme, schlägt vor, nur einen MPD-Ordner in Ihrem Home-Verzeichnis für dieses Zeug zu erstellen, außer für Ihr eigentliches Musikverzeichnis.
3.) Kommentieren Sie die Benutzerzeile in .mpdconf aus:
#user "mpd"
4.) Jetzt können Sie mpd ausführen und die Datenbank aktualisieren.
5.) Um mpd beim Anmelden automatisch als Benutzer zu starten, gehen Sie zu Startanwendungen und fügen Sie einen Eintrag für mpd hinzu. Erstellen Sie dann eine Autostart-Datei in ~ / .config / autostart /.
Das Ausführen als Benutzer hat wahrscheinlich Nachteile, sodass dies möglicherweise nicht Ihren Anforderungen entspricht.
quelle
Ich bin mir nicht sicher, ob es genau das gleiche Problem ist, aber ich glaube, dass mpd mit meinem alten Standard-MPD-Setup versucht hat, sein eigenes Puls-Audio als ein anderer Benutzer (der MPD-Benutzer) zu starten. Ich fand es einfacher, meinen Impulsausgang in /etc/mpd.conf auf die Verwendung eines Sockets zum Verbinden einzustellen , um diese Art von Problem zu vermeiden.
Dann möchten Sie möglicherweise überprüfen, ob Sie lokale Verbindungen akzeptieren
quelle
.pulse-cookie
um/var/lib/mpd
diese zur Arbeit zu kommen, oder das Pulseaudio kann nicht mitfailed to connect: Access denied
, obwohl ich nicht sicher bin , ist , dass der richtige Weg.Wenn mpd gemäß den Wiki-Anweisungen als eigener Benutzer ausgeführt wird, kann es keinen Sound an den pulseaudio-Server eines anderen Benutzers senden. Anstatt pulseaudio als systemweiten Daemon einzurichten, von dem Upstream dringend abgeraten wird, können Sie mpd so konfigurieren, dass das TCP-Modul von pulseaudio zum Senden von Sound an localhost verwendet wird:
Kommentieren Sie zunächst das TCP-Modul in /etc/pulse/default.pa oder $ XDG_CONFIG_HOME / puls / default.pa (normalerweise ~ / .config / puls / default.pa) aus und legen Sie 127.0.0.1 als zulässige IP-Adresse fest. Das Home-Verzeichnis hat Vorrang:
Zusätzliche IP-Bereiche in CIDR-Notation können mit hinzugefügt werden. als Trennzeichen. Sobald dies abgeschlossen ist, starten Sie pulseaudio neu:
Bearbeiten Sie als Nächstes /etc/mpd.conf und fügen Sie einen neuen Impulsausgang hinzu, der auf 127.0.0.1 als "Remote" -Server verweist:
von https://wiki.archlinux.org/index.php/Music_Player_Daemon/Tips_and_tricks
quelle