Explication simple
Si mpd est en cours de lecture et que le son tente de jouer via une autre application, x , le son de x ne sera pas émis.
Si le son d'une autre application, x , est en cours de lecture et que mpd tente de jouer, aucun son ne sera émis par mpd pendant que le son de x continue à jouer.
Détails
J'ai d'abord remarqué ce problème avec Flash, et cela continue d'être le scénario le plus courant. J'ai posté une question à ce sujet avant de réaliser que ce n'était pas strictement lié à Flash, mais plutôt à quelque chose à voir avec mpd.
Ma plus grande frustration vient d'essayer de faire fonctionner à nouveau mpd, car je n'arrive pas à définir une méthode. pulseaudio -k
Semble parfois aider, d'autres fois sudo /etc/init.d/mpd restart
, d'autres tuent le chrome (à cause de Flash) avec SIGTERM
. La plupart du temps, c'est une combinaison de ce qui précède.
Je pense que cela pourrait être parce que je lance mpd en tant qu'autre utilisateur et que j'utilise pulseaudio. Il n'est pas exécuté en tant qu'utilisateur root ou actuel. De plus, mpd est compilé avec le support d'impulsions.
J'ai essayé de nombreuses choses, mais honnêtement, je ne pouvais pas réciter quoi, car cela fait longtemps. Je préfère ne pas fouiner sans direction, mais je serais vraiment heureux de résoudre ce problème une fois pour toutes.
mpd.conf
Simplifié en supprimant les commentaires / lignes vides.
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"
Question
Pour que cela reste une question: est-ce que quelqu'un sait ce qui est à l'origine de cela ou comment y remédier sans exécuter mpd en tant qu'utilisateur actuel?
la source
Réponses:
J'ai eu ce problème lorsque j'ai commencé à utiliser mpd, mais c'était il y a un certain temps, donc je ne me souviens pas exactement de ce que j'ai fait pour le réparer!
Avez-vous installé les préférences PulseAudio? J'ai trouvé cette astuce sur un forum:
sudo apt-get install paprefs
Ensuite, ouvrez les préférences PulseAudio dans le menu: Système-> Préférences-> Préférences PulseAudio Cliquez sur l'onglet Serveur réseau, puis cochez la case "Activer l'accès réseau aux périphériques audio locaux" et enfin cochez la case "Ne nécessite pas d'authentification". Après cela, redémarrez mpd:
sudo /etc/init.d/mpd restart
Cependant ... Je viens de réaliser que mpd fonctionne bien pour moi et je n'ai pas activé "l'accès réseau aux périphériques audio locaux".
Je pense que vous pourriez avoir raison d'exécuter mpd en tant qu'utilisateur actuel, ce que je fais. (Je n'ai aucune idée de pourquoi c'est le cas!)
Un guide simple pour configurer mpd à exécuter en tant qu'utilisateur peut être trouvé ici: http://gmpc.wikia.com/wiki/MPD_INSTALL_USER_SERVICE_UBUNTU
Pour résumer, puisque vous avez déjà installé mpd:
1.) Arrêtez-le:
sudo update-rc.d mpd disable
2.) Copiez votre mpdconf dans votre répertoire personnel (au format .mpdconf) et modifiez les entrées suivantes aux endroits où votre utilisateur peut accéder et écrire:
La page à partir de laquelle je prends cela suggère simplement de créer un dossier .mpd dans votre répertoire personnel pour ce genre de choses, à sauvegarder pour votre répertoire musical réel.
3.) Mettez en commentaire la ligne utilisateur en .mpdconf:
#user "mpd"
4.) Vous pouvez maintenant exécuter mpd et mettre à jour la base de données.
5.) Pour que mpd démarre automatiquement en tant qu'utilisateur lors de la connexion, accédez à Démarrage des applications et ajoutez une entrée pour mpd, puis créez un fichier de démarrage automatique dans ~ / .config / autostart /.
Il y a probablement des inconvénients à fonctionner en tant qu'utilisateur, alors peut-être que cela ne conviendra pas à vos besoins.
la source
Je ne sais pas si c'est exactement le même problème, mais avec mon ancienne configuration mpd par défaut, je pense que mpd essayait de démarrer sa propre impulsion audio en tant qu'utilisateur différent (l'utilisateur mpd). J'ai trouvé que régler ma sortie d'impulsion dans /etc/mpd.conf pour utiliser une socket pour se connecter est plus simple pour éviter ce genre de problème.
Ensuite , vous pouvez vérifier paprefs que vous acceptez les connexions locales
la source
.pulse-cookie
pour/var/lib/mpd
que cela fonctionne, ou le pulseaudio a échouéfailed to connect: Access denied
, mais je ne suis pas sûr que ce soit la bonne façon.Lorsqu'il est exécuté en tant que son propre utilisateur conformément aux instructions du wiki, mpd ne pourra pas envoyer de son au serveur pulseaudio d'un autre utilisateur. Plutôt que de configurer pulseaudio en tant que démon à l'échelle du système, une pratique fortement déconseillée en amont, vous pouvez plutôt configurer mpd pour utiliser le module tcp de pulseaudio pour envoyer du son à localhost:
Tout d'abord, décommentez le module tcp dans /etc/pulse/default.pa ou $ XDG_CONFIG_HOME / pulse / default.pa (généralement ~ / .config / pulse / default.pa) et définissez 127.0.0.1 comme adresse IP autorisée; le répertoire personnel a priorité:
Des plages IP supplémentaires en notation cidr peuvent être ajoutées à l'aide de; comme séparateur. Une fois cette opération terminée, redémarrez pulseaudio:
Ensuite, éditez /etc/mpd.conf et ajoutez une nouvelle sortie d'impulsion pointant vers 127.0.0.1 en tant que serveur "distant":
depuis https://wiki.archlinux.org/index.php/Music_Player_Daemon/Tips_and_tricks
la source