音频不能在Raspberry Pi上使用crontab

时间:2017-02-27 22:41:09

标签: bash cron raspberry-pi

我试图让我的Raspberry Pi目前连接到蓝牙扬声器,每天按计划播放音频文件,我的cron作业正在更新@daily新时机(它基本上是祈祷的召唤)

crontab -l

@daily /home/pi/athan/update_prayers.sh
39 05 27 2 * /home/pi/athan/call_prayer.sh >/dev/null 2>&1 #fajr
31 12 27 2 * /home/pi/athan/call_prayer.sh >/dev/null 2>&1 #dhuhr
34 15 27 2 * /home/pi/athan/call_prayer.sh >/dev/null 2>&1 #asr
05 18 27 2 * /home/pi/athan/call_prayer.sh >/dev/null 2>&1 #maghrib
24 19 27 2 * /home/pi/athan/call_prayer.sh >/dev/null 2>&1 #isha

所以,上面就是我现在所拥有的,这是/home/pi/athan/update_prayers.sh

的内容
#!/bin/bash
/home/pi/.nvm/versions/node/v7.5.0/bin/node /home/pi/athan/set_prayer.js

基本上我的set_prayer.js只是使用这个https://www.npmjs.com/package/crontab模块来设置crontab,我能够每天更新它没问题。现在我使用Mplayer播放音频,这是我使用的命令:

/home/pi/athan/call_prayer.sh

#!/bin/bash
/usr/bin/mplayer /home/pi/athan/athan.mp3

我的问题是,当cron作业在那里运行时没有声音或我甚至不知道作业是否正在运行,但是当我手动执行时我可以听到正在播放的音频没问题。我也尝试使用/usr/bin/omxplayer -o alsa /home/pi/athan/athan.mp3直接在这里运行它而不是运行bash脚本,它似乎不能与cron一起工作,但是当我直接运行命令时工作正常。

1 个答案:

答案 0 :(得分:9)

我正在努力解决类似的问题(如果从crontab运行该命令,蓝牙扬声器上没有音频。

问题是混合pulseaudio / crontab和环境设置。

以下解决方案对我有用: https://wiki.archlinux.org/index.php/PulseAudio#Play_sound_from_a_non-interactive_shell_.28systemd_service.2C_cron.29

所以基本上只做crontab -e并添加以下内容:

XDG_RUNTIME_DIR=/run/user/user_id

可以通过以下命令找到用户ID:

id [user_name]