2009年2月21日土曜日

指定した時間になったらmp3を再生する

[したいこと・しりたいこと]
指定した時間になったらmp3を再生する
昼にUbuntuに、「お昼ですよー」と言わせたい
夕方ににUbuntuに、「下校の時間ですよー」と言わせたい

[環境]
Ubuntu Hardy 8.04
VirtualBox 2.1.x
USB 104Key (US)

alarm.sh alarm.mp3 の保管場所は /var/opt/ とする
標準の再生デバイスはALSAとする



[したこと]

1. コーデック等の導入
$ sudo apt-get -y install flac lame soundconverter gstreamer0.10-ffmpeg gstreamer0.10-fluendo-mp3 gstreamer0.10-fluendo-mpegdemux gstreamer0.10-schroedinger gstreamer0.10-plugins-good gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-bad gstreamer0.10-plugins-ugly gstreamer0.10-pitfdll ubuntu-restricted-extras

※表示の関係で1行に見えないかもしれませんが、1行です
※コピペして、codec.shとでも名前をつけて chmod +x chodec.sh として実行権をつけて sudo sh codec.sh とすると 楽できるかもしれません


2. atコマンドで 指定時間に再生する

$ sudo vi /var/opt/alarm.sh

-----start.alarm.sh-----

mpg123 -q /var/opt/alarm.mp3

------end.alarm.sh------

$ sudo chmod +x /var/opt/alarm.sh

例)
5分後に再生
$at -f /var/opt/alarm.sh now +5 minutes
お昼に再生
$at -f /var/opt/alarm.sh 12:00


3. cronで 指定時間に繰り返し再生

crontabの編集
$ sudo vi /etc/crontab

例)30分ごとに再生
# m h dom mon dow uer command
#分 時 日 月 曜日 ユーザー コマンド
0,30 * * * * root /var/opt/alarm.sh

再起動


[注意]

標準の環境ではmp3の再生ができない

$at -f /var/opt/alarm.sh とか $at -f /var/opt/alarm.sh +5 minutes など、間違ったコマンドを発行すると 音が出なくなった。
(再起動で対応)



[参考]


http://ash.jp/linux/unyo/09.htm

http://www.webhtm.net/unix/cmd/at_cmd.htm

http://x68000.q-e-d.net/~68user/unix/pickup?at