SVX日記
2004-07-07(Wed) CUIのメディアプレーヤ完成
昨日は、ジュークボックスアプリのユーザインタフェイス側を作ったので(上っ面だけだけど)、今日は実際にメディアファイルを再生させるミニコマンドを作ることにした。ここでワザワザ「mp3ファイル」でなく「メディアファイル」と書いたのは、昨日述べたように、Windows的にはmp3を再生するのもaviを再生するのも同じような手間なので、両方に対応可能なミニコマンドを作る予定だからである。つまり、車載ビデオプレーヤも実現できるように作ってしまうのである。
当初はC++BuilderのTMediaPlayerコンポーネントでも利用することになるんかなーと思っていたのだが「ファイル名を与えるとファイルを再生、終わったら終了」という単純動作を突き詰めていくと、なんのことはない、WindowsAPIのmciSendStringを呼ぶだけで済んでしまうようである。結果、Bolandのフリー版C++コンパイラだけで十分実現可能であった。
mciSendString("おぅっ、そこに'xxxx.mpeg'っつぅけったいなファイルがあんだけどよ、開けるかぃ?", NULL, 0, NULL);
mciSendString("よっしゃ、そのけったいなヤツをとっとと再生してくんな、景気よく画面いっぺぇにな", NULL, 0, NULL);
mciSendString("べらんめぇ、いまどこ再生してんだぃ、あぁん?", answer, 0, NULL);
という調子である(実際には英語だが)。これだと、引数の順番を考えなくていいし、デフォルトのままでいいパラメータなら指定しなければいいので、かなり楽である。通常のWindowsのAPIはウィンドウひとつ開くにも多数のパラメータが必要なので、それもこういう会話インタフェイスにしてもらえたら楽だろうな。