Explicación simple
Si se reproduce mpd y el sonido intenta reproducirse a través de otra aplicación, x , no se emitirá el sonido de x .
Si se reproduce sonido de otra aplicación, x , y mpd intenta reproducirlo, no se emitirá ningún sonido desde mpd mientras el sonido de x continúa reproduciéndose.
Detalles
Primero noté este problema con Flash, y este sigue siendo el escenario más común. Me envió una consulta sobre este antes de darse cuenta que no era estrictamente relacionados con Flash, sino que es algo que ver con el MPD.
Mi mayor frustración proviene de tratar de hacer que mpd vuelva a funcionar, ya que parece que no puedo precisar ningún método. A veces pulseaudio -k
parece ayudar, otras veces sudo /etc/init.d/mpd restart
, otros matan a Chromium (debido a Flash) con SIGTERM
. La mayoría de las veces es una combinación de lo anterior.
Creo que esto podría deberse a que ejecuto mpd como otro usuario y uso pulseaudio. No se ejecuta como usuario root o actual. Además, mpd se compila con soporte de pulso.
He intentado numerosas cosas, pero honestamente no pude recitar qué, ya que ha pasado algún tiempo desde entonces. Prefiero no hurgar sin alguna dirección, pero me encantaría solucionar este problema de una vez por todas.
mpd.conf
Simplificado al eliminar comentarios / líneas en blanco.
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"
Pregunta
En aras de mantener esto una pregunta: ¿alguien sabe qué está causando esto o cómo solucionarlo sin ejecutar mpd como el usuario actual?
fuente
Respuestas:
Tuve este problema cuando comencé a usar mpd, pero fue hace bastante tiempo, ¡así que no puedo recordar exactamente qué hice para solucionarlo!
¿Tiene instaladas las preferencias de PulseAudio? Encontré este consejo en un foro:
sudo apt-get install paprefs
Luego abra las preferencias de PulseAudio desde el menú: Sistema-> Preferencias-> Preferencias de PulseAudio Haga clic en la pestaña Servidor de red, luego marque la casilla "Habilitar acceso de red a dispositivos de sonido locales" y finalmente marque la casilla "No requerir autenticación". Después de eso, reinicie mpd:
sudo /etc/init.d/mpd restart
Sin embargo ... me acabo de dar cuenta de que mpd funciona bien para mí y no tengo habilitado el "acceso de red a dispositivos de sonido locales".
Creo que puede tener razón sobre la necesidad de ejecutar mpd como usuario actual, que es lo que estoy haciendo. (¡No tengo idea de por qué esto es así!)
Puede encontrar una guía simple para configurar mpd para que se ejecute como usuario aquí: http://gmpc.wikia.com/wiki/MPD_INSTALL_USER_SERVICE_UBUNTU
Para resumir, ya que tiene instalado mpd:
1.) Detenlo:
sudo update-rc.d mpd disable
2.) Copie su mpdconf en la dirección de su casa (como .mpdconf) y cambie las siguientes entradas a lugares donde su usuario pueda acceder y escribir:
La página de la que estoy tomando esto sugiere simplemente crear una carpeta .mpd en su directorio de inicio para estas cosas, guardar para su directorio de música real.
3.) Comente la línea de usuario en .mpdconf:
#user "mpd"
4.) Ahora puede ejecutar mpd y actualizar la base de datos.
5.) Para que mpd se inicie automáticamente como usuario al iniciar sesión, vaya a Aplicaciones de inicio y agregue una entrada para mpd, luego cree un archivo de inicio automático en ~ / .config / autostart /.
Probablemente haya inconvenientes en la ejecución como usuario, por lo que tal vez esto no satisfaga sus necesidades.
fuente
No estoy seguro de si es exactamente el mismo problema, pero con mi antigua configuración de mpd predeterminada, creo que mpd estaba tratando de iniciar su propio audio de pulso como un usuario diferente (el usuario mpd). Descubrí que configurar mi salida de pulso en /etc/mpd.conf para usar un socket para conectar es más simple para evitar este tipo de problema.
Entonces, es posible que desee comprobar si Paprefs acepta conexiones locales
fuente
.pulse-cookie
para/var/lib/mpd
que esto funcione, o el audio de pulso fallófailed to connect: Access denied
, aunque no estoy seguro de que sea la forma correcta.Cuando se ejecuta como su propio usuario según las instrucciones de la wiki, mpd no podrá enviar sonido al servidor pulseaudio de otro usuario. En lugar de configurar pulseaudio como un daemon de todo el sistema, una práctica muy desaconsejada por upstream, puede configurar mpd para usar el módulo tcp de pulseaudio para enviar sonido a localhost:
Primero, descomente el módulo tcp en /etc/pulse/default.pa o $ XDG_CONFIG_HOME / pulse / default.pa (típicamente ~ / .config / pulse / default.pa) y configure 127.0.0.1 como una dirección IP permitida; el directorio de inicio tiene prioridad:
Se pueden agregar rangos de IP adicionales en notación cidr usando; como el separador Una vez que esto se haya completado, reinicie pulseaudio:
A continuación, edite /etc/mpd.conf y agregue una nueva salida de pulso que apunte a 127.0.0.1 como un servidor "remoto":
de https://wiki.archlinux.org/index.php/Music_Player_Daemon/Tips_and_tricks
fuente