我有一个简单的命令
play -V4 /folder/file.ogg在命令行上,它工作得很好。
关于crontab
* * * * * klaus play -V4 /folder/file.ogg它会被触发(我可以在syslog中看到它),但我听不见它。
CRON[4827]: (klaus) CMD (play -V4 /folder/file.ogg)更新
crontab提供了以下调试输出
play DBUG alsa: select_format: trying #2
play DBUG alsa: selecting format 2: S16_LE (Signed 16 bit Little Endian)
play INFO formats: can't set sample rate 44100; using 48000
Output File : 'default' (alsa)
Channels : 2
Sample Rate : 48000
Precision : 16-bit
Duration : 00:00:02.21 = 105984 samples ~ 165.6 CDDA sectors
Sample Encoding: 16-bit Signed Integer PCM
Endian Type : little
Reverse Nibbles: no
Reverse Bits : no有效的命令行给了我
Output File : 'default' (pulseaudio)
Channels : 2
Sample Rate : 44100
Precision : 32-bit
Duration : 00:00:02.40 = 105984 samples = 180.245 CDDA sectors
Sample Encoding: 32-bit Signed Integer PCM
Endian Type : little
Reverse Nibbles: no
Reverse Bits : no所以问题是这个播放命令来自sox包,它在命令上使用脉冲音频,在crontab上使用alsa .
男人的索克斯没有说明如何指定司机,有什么提示吗?
发布于 2020-05-11 23:53:45
播放机必须缺少初始化PulseAudio所需的一个或多个环境变量。很有可能,XDG_RUNTIME_DIR。
尝试将整个环境导出到一个文件((env; echo 'play -V4 /folder/file.ogg') >script.sh)中,并使用sh -a /path/to/script.sh从cron运行它。如果这样做有效,请查看可以删除哪些环境变量。
https://unix.stackexchange.com/questions/586026
复制相似问题