なんか作って載せます

メディアファイルを読み込んで再生するだけの、簡単なプレイヤーです。

第13回:簡易メディアプレイヤー



 音楽や動画などを再生するためのメディアプレイヤーの作成についてやってみます。


 音声や音楽をHSPから再生するためには、「mmload命令」「mmplay命令」「mmstop命令」の3つを使います。
 mmloadでファイルを読み込み、mmplayで再生、mmstopで停止という感じです。

 「.wav」「.mid」「.mp3」「.wma」「.avi」「.mpg」「.wmv」などの拡張子を持つメディアファイルと、音楽CDを扱うことができます。

 メディアを読み込むときは、
  「mmload "メディアファイル名" , メディアバッファID , モード」
 というように指定します。

 「メディアバッファID」というのは、読み込んだメディアに付ける数字のことです。
 0から始まる数値を自由に指定することができます。

 例えば、
  mmload "bgm1.mid",0
  mmload "oto1.wav",1
 とすると、メディアバッファID0に「bgm1.mid」が、ID1に「oto1.wav」がそれぞれ読み込まれます。

 メディアバッファIDの後ろにある「モード」のパラメータは、特殊な再生方法を行うときに指定するものなので、通常は省略して構わないそうです。

 ちなみに、モードのパラメータに指定できるのは、
  モード0…通常再生を行う
  モード1…ループ再生を行う
  モード2…再生終了を待つ(再生終了するまで次の命令に進まない)
  モード+16…動画(ムービー)をウィンドウ全体で再生する
 の4つです。

 そして、読み込んだメディアを再生するためには、
  「mmplay メディアバッファID」
 というように指定します。
 これで、mmloadで読み込んだファイルの中で、指定したメディアバッファIDのものが再生されます。

 もしも再生途中で停止したくなった場合は、「mmstop」を実行します。


 では、メディアファイルを選択して再生するだけのシンプルなメディアプレイヤーを作ってみます。

簡易メディアプレイヤー

 新しく「dialog命令」というのが出てきました。

 このスクリプトでは、「ファイルOPENダイアログ」を表示させるようになっています。
 このダイアログは、ほかのWindowsアプリケーションでも全く同じ物が使われています。
 様々なソフトで共通に使われている部分的な機能を「コモンダイアログ」と呼びます。
 dialog命令は、HSPスクリプトからコモンダイアログを呼び出すための命令です。

 書き方は、
  「dialog ファイル拡張子 , ダイアログのタイプ , ファイルタイプの説明」
 です。

 ファイル拡張子は、ファイル一覧の時に表示される拡張子とその説明として表示されている文字列を指定しています。
 別のものに変えれば、いろいろな種類のファイルに対応した読み込みダイアログにできます。

 ダイアログのタイプは、コモンダイアログの種類を選ぶスイッチになっています。

 タイプには、以下のものがあります。
  0…標準メッセージボックス+[OK]ボタン
  1…警告メッセージボックス+[OK]ボタン
  2…標準メッセージボックス+[YES][NO]ボタン
  3…警告メッセージボックス+[YES][NO]ボタン
  16…ファイルOPEN(開く)ダイアログ
  17…ファイルSAVE(保存)ダイアログ
  32…カラー選択ダイアログ(固定色)
  33…カラー選択ダイアログ(RGBを自由に選択)

 例として、「dialog "こんにちは" , 0 , "dialog"」と書くと、
ダイアログ

 こんなウィンドウが出ます。


 さて、ファイルを選択するダイアログを出すところまではいいとして、選択されたファイル名をどうやって知るのか、また、ファイルを選ばずに「キャンセル」されたらどうするのかという疑問があります。

 これを知るためには、「システム変数」を使います。
 システム変数というのは、簡単に言えば「何もしていないのに、値が代入されている変数」のことです。

 ここで使うシステム変数は、「stat」と「refstr」の2つです。

 システム変数statには、ファイル選択時にキャンセルされたかどうかを示す値が代入されます。
 キャンセルせずにファイルを選択した場合は「1」、キャンセルされた場合は「0」が勝手に入ります。
 これをチェックすれば、ファイルを選択したかキャンセルしたかを判定することができます。

 そして、選択されたファイル名がシステム変数refstrに入ります。
 つまり、このrefstrというシステム変数は文字列型です。

 dialog命令のすぐ後で、statとrefstrを使って内容を調べた方がいいそうです。
 dialog命令の後にまたdialog命令を使った場合、後のdialog命令がシステム変数を上書きしてしまい、1つ前のdialog命令の結果が失われてしまうということなので。


 さて、上のスクリプトを実行してみましょう。
簡易メディアプレイヤー・起動

 こんな感じのが表示されます。ボタンは「読み込み」「再生」「終わり」の3つしかありません。

 読み込みボタンを押すと、
ファイル読み込み

 ファイルを選んで読み込むダイアログが表示されます。
 「ファイル名」のところに最初から何か入っているのが気になりますが、この画面で読み込むファイルを選びます。
 ちなみに、画像の2つのファイルは付属CD-ROMに入っていたものです。

 ファイルを読み込んだら、次にプレイヤーの再生ボタンを押します。
 そうすれば、読み込んだファイルの再生が始まります。
 ちゃんと動いてくれましたけど、なぜかキャプチャできなかったので画像はありません。

 付属CD-ROMには、音楽CD再生のためのスクリプトも入ってました。
 知らない命令が少し混ざっていましたけど、仕組みはなんとなく理解できました。


 今回はこれで終わり。


2012/05/19/Sat 更新

inserted by FC2 system