単純なcronタスクの作成方法を本当に理解していません。アイデアは、mplayerに特定の時間に特定のファイルを再生させることです。
私の試みは次のとおりです。
MIN HOUR * * * /usr/bin/mplayer PATH_TO_THE_FILE > /dev/null 2>&1
Xサーバーがクラッシュするだけです。私は何が間違っていましたか?
答え1
オーディオのみを希望する場合は、まずオーディオファイルに変換する必要があります。これにより、PulseaudioとXを処理する手間が少なくなります。
オプション:
cron-job をデスクトップユーザーテーブルに配置し、root ではなくそのユーザーとして実行します。望むより
crontab -u
。環境変数を設定する必要があるかもしれません(試していません)。デスクトップユーザーがログインせずにPulseaudioが起動しないと、この操作は失敗します。許可する方法を学ぶPulseaudioを使用している他のユーザー、それに従って構成しなさい。デスクトップユーザーがログインしていなくても失敗します。
パルスオーディオの実行システム全体。
Pulseaudioを完全に無効にし、再生にALSAを使用し、デバイスの権限がクローンジョブの
/dev/snd/*
ユーザー/グループと互換性があることを確認してください。
また、それよりも簡単なプログラムを使用することを検討してくださいmplayer
(ただし、再生できる形式について知っておいてください)。たとえば、mpg123
非常に単純なものpaplay
(Pulseaudio、WAVのみ)、またはaplay
(ALSA、WAVのみ)です。
答え2
cronで開始されたジョブはttyまたはモニターを制御しません。MIN
合計の代わりに間違いを使用したとしますかHOUR
?
そのオプションを追加してみてください-display
。
0 15 * * * /usr/bin/mplayer -display localhost.localdomain:0 PATH_TO_THE_FILE > /dev/null 2>&1
-display
特定のサーバーのパラメーターを調整する必要があるかもしれません。
答え3
ファイルを再生するには、コマンドラインプログラムを使用することをお勧めします。それは次のとおりですsox
。
パッケージとして提供されることには疑いの余地はありません。play
そのファイルのみを再生するエイリアスが含まれています。オーディオファイルだけが再生されますが、sox
これは問題ではないと述べました。