簡単なコマンドがあります。
play -V4 /folder/file.ogg
コマンドラインでは完璧に動作します。
クローンタブから
* * * * * klaus play -V4 /folder/file.ogg
トリガーされますが、システムログに表示されますが聞こえません。
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
したがって、問題はコマンドにpulseaudioを使用し、crontabにalsaを使用するsoxパッケージの再生コマンドです。
Man of Sox が DRIVER を指定する方法を示していません。どのようなヒントがありますか?
答え1
プレーヤーには、PulseAudioを初期化するために必要な1つ以上の環境変数がありません。それはおそらくXDG_RUNTIME_DIRでしょう。
環境全体をファイル((env; echo 'play -V4 /folder/file.ogg') >script.sh
)にエクスポートし、cronを使用してcronで実行しますsh -a /path/to/script.sh
。機能する場合は、どの環境変数を削除できるかを確認してください。