帮助使用crontab播放声音

我想用crontab每小时和15,30和45分钟播放大本的录音。

到目前为止,我正在使用mplayer2和以下任务:

0 1,13 * * * mplayer -really-quiet ~/bin/bigben/Clock_Chime_01.ogg -volume 100 >/dev/null 2>&1 # JOB_ID_75 0 2,14 * * * mplayer -really-quiet ~/bin/bigben/Clock_Chime_02.ogg -volume 100 >/dev/null 2>&1 # JOB_ID_76 0 3,15 * * * mplayer -really-quiet ~/bin/bigben/Clock_Chime_03.ogg -volume 100 >/dev/null 2>&1 # JOB_ID_77 0 4,16 * * * mplayer -really-quiet ~/bin/bigben/Clock_Chime_04.ogg -volume 100 >/dev/null 2>&1 # JOB_ID_78 0 5,17 * * * mplayer -really-quiet ~/bin/bigben/Clock_Chime_05.ogg -volume 100 >/dev/null 2>&1 # JOB_ID_79 0 6,18 * * * mplayer -really-quiet ~/bin/bigben/Clock_Chime_06.ogg -volume 100 >/dev/null 2>&1 # JOB_ID_80 0 7,19 * * * mplayer -really-quiet ~/bin/bigben/Clock_Chime_07.ogg -volume 100 >/dev/null 2>&1 # JOB_ID_81 0 8,20 * * * mplayer -really-quiet ~/bin/bigben/Clock_Chime_08.ogg -volume 100 >/dev/null 2>&1 # JOB_ID_82 0 9,21 * * * mplayer -really-quiet ~/bin/bigben/Clock_Chime_09.ogg -volume 100 >/dev/null 2>&1 # JOB_ID_83 0 10,22 * * * mplayer -really-quiet ~/bin/bigben/Clock_Chime_10.ogg -volume 100 >/dev/null 2>&1 # JOB_ID_84 0 11,23 * * * mplayer -really-quiet ~/bin/bigben/Clock_Chime_11.ogg -volume 100 >/dev/null 2>&1 # JOB_ID_85 0 0,12 * * * mplayer -really-quiet ~/bin/bigben/Clock_Chime_12.ogg -volume 100 >/dev/null 2>&1 # JOB_ID_86 15 0-23 * * * mplayer -really-quiet ~/bin/bigben/Clock_Chime_15-1.ogg -volume 100 >/dev/null 2>&1 30 0-23 * * * mplayer -really-quiet ~/bin/bigben/Clock_Chime_15-2.ogg -volume 100 >/dev/null 2>&1 45 0-23 * * * mplayer -really-quiet ~/bin/bigben /Clock_Chime_15-3.ogg -volume 100 >/dev/null 2>&1 

但大多数时候它不起作用。 有时它确实播放声音但延迟了。 即。 本应该在21:15比赛,而且在21:17时我没有打开一个终端并用mplayer播放了另一个文件,完成之后,我听说应该提前2分钟播放。

编辑:现在尝试使用: * * * * * "/usr/bin/mplayer -volume 100 --ao=pulse /home/myuser/bin/bigben/Clock_Chime_15-1.ogg"但没有成功。

我确实感觉任务仍然存在某种暗示。

PS。 我可以分享声音文件。

我使用以下命令播放声音文件:

  aplay ~/scripts/KenbeepBent.wav 

其中KenbeepBent.wav是我保存在〜/ scripts目录中的声音文件,所以我可以将它包含在bash脚本中。 我希望它能满足你的需求。

根据这个答案: 我可以像高手钟一样使用cron来控制时间吗? 您需要在cron脚本中播放声音之前导出环境变量:

 export XDG_RUNTIME_DIR="/run/user/1000" 

因此,不要直接调用音乐播放器,而是在crontab调用脚本名称,如下所示:

 0 1,13 * * * /home/ME/bin/big-ben.sh /home/ME/bin/bigben/Clock_Chime_01.ogg >/dev/null 2>&1 # JOB_ID_75 (... SNIP ...) 45 0-23 * * * /home/ME/bin/big-ben.sh /home/ME/bin/bigben/Clock_Chime_15-3.ogg >/dev/null 2>&1 
  • 用您的用户名替换ME
  • 你有一个错误( /bigben之前的空格和/Clock crontab的最后一行之前/Clock 。我已经修复了上面的错误。
  • 您正在使用/home/ME ~/快捷方式, cron不喜欢。 在cron使用完整路径名。

然后创建/usr/local/bin/big-ben.sh脚本:

 #!/bin/bash export XDG_RUNTIME_DIR="/run/user/1000" mplayer -really-quiet "$1" -volume 100 
  • “$ 1”是crontab条目传递给脚本的参数1

请记住使用以下方法标记脚本可执行文件

 chmod a+x /usr/local/bin/big-ben.sh