web-dev-qa-db-fra.com

mplayer ne peut pas lire l'audio à partir de cron pendant que ncmpcpp joue simultanément

J'ai mis en place un script, qui exécute une commande mplayer, afin de lire l'audio dans crontab. Il sera exécuté dans un temps défini, mais ce script ne peut pas lire l'audio lorsque ncmpcpp (un frontal pour mpd, alias. Music Player Daemon) joue de la musique. Mais ce script peut lire de l'audio lorsque je l'exécute à partir d'un terminal comme celui-ci:

sh bin/alarm.sh   

J'essaie d'obtenir la sortie de crontab ou de script, mais en vain. Je suppose que certains paramètres dans ncmpcpp ou mplayer sont incorrects, ou mpd utilise le même démon avec le démon de crontab.

  • Quoi qu'il en soit, je ne trouve pas la solution. Si vous le savez, aidez-moi.
3
stardiviner

Le problème semble être que mpd fonctionne sous l'utilisateur mpd par défaut (en tant que démon système) et n'est donc pas en mesure de rejoindre le mixeur pulseaudio de vos sessions, donc il monopolise la sortie de la carte son via alsa ou même oss. Dans ma réponse, je suppose que vous êtes connecté et que la crontab est la vôtre et non la crontab du système.

MPD

Selon vos priorités, vous avez beaucoup d'options qui tournent principalement autour de l'idée d'apprendre à mpd à ne pas monopoliser le son et à utiliser plutôt pulseaudio. Voir le mpd wiki .

mplayer

Vous pouvez configurer mplayer par défaut sur pulseaudio en plaçant une ligne ao=Pulse dans ~/.mplayer/config mais pulseaudio devrait bien le capter avec son plugin alsa.

1
aquaherd

Dans votre crontab, veuillez l'ajouter à la section des commandes

export DISPLAY=:0.0 && sh /bin/alarm.sh

Le export DISPLAY=:0.0 est requis pour exécuter les applications graphiques.

0
Nitin Venkatesh
XDG_RUNTIME_DIR=/run/user/$(id -u) <sound command>

Consultez également les liens ci-dessous, car d'autres versions peuvent être nécessaires:

https://wiki.archlinux.org/index.php/PulseAudio#Play_sound_from_a_non-interactive_Shell_.28systemd_service.2C_cron.29

mplayer ne peut pas lire l'audio depuis cron pendant que ncmpcpp joue simultanément

0
liar666

Lors de l'utilisation, par exemple play (à partir du package sox), les informations suivantes doivent être exportées:

export DISPLAY=:0
export XAUTHORITY=/home/YOURUSERNAME/.Xauthority
0
blueyed