Raspberry Pi 上的 crontab 无法播放音频

2023-11-24

我正在尝试让我的 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,但当我直接运行命令时工作正常。


我正在努力解决类似的问题(如果从 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]

您还可以在 crontab 中使用它:

* * * * * XDG_RUNTIME_DIR=/run/user/$(id -u) /path/to/script

它将自动使用当前用户 ID。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Raspberry Pi 上的 crontab 无法播放音频 的相关文章