「なでしこ」で音楽再生。その回数は4。

soramimi8302006-07-26

さて、音楽再生4回目。
今回は曲選択にもボタンを付けましょう。
もうボタンをつけるだけなら10秒ですね。

再生フラグは0。
曲選択ボタンとはボタン。
そのテキストは「曲選択」。
これをクリックした時は
   「*.mp3;*.wav;*.wma」のファイル選択を対象曲に代入。
   もし、それが空なら終わる。
   対象曲を「整理券番号1番」でMCI開く。
プレイボタンとはボタン。
そのテキストは「再生」。
これをクリックした時は
   もし、再生フラグが0なら、
      「play 整理券番号1番」をMCI送信。
      再生フラグは1。
停止ボタンとはボタン。
そのテキストは「停止」。
これをクリックした時は
   もし、再生フラグが1なら、
      「stop 整理券番号1番」をMCI送信。
      「seek 整理券番号1番 to 0」をMCI送信
      再生フラグは0。
母艦を閉じた時は〜
   「整理券番号1番」をMCI閉じる。

と、このままで実行させると不具合がおきる、というのがこのブログでの流れです。
今回の不具合
・曲選択する前に、再生、終了をすると、MCIが開いていないのにMCIを(使おう|閉じよう)としたと言うエラーになります。
・曲選択した後、もう一度曲選択をするとMCIを二重に開いたと言うエラーになります。


と、いつもの通りこのエラーを回避させましょう。
今回は前に出た「MCIフラグ」を再登場させます。
MCIが開いてるか閉じてるかを示すフラグと、再生中か停止中か示すフラグの2本を使う訳です。

再生フラグは0。
MCIフラグは0。
曲選択ボタンとはボタン。
そのテキストは「曲選択」。
これをクリックした時は
   「*.mp3;*.wav;*.wma」のファイル選択を対象曲に代入。
   もし、それが空でないなら
      もし、MCIフラグが1なら、「整理券番号1番」をMCI閉じる。
      対象曲を「整理券番号1番」でMCI開く。
      MCIフラグは1。
      再生フラグは0。
プレイボタンとはボタン。
そのテキストは「再生」。
これをクリックした時は
   もし、MCIフラグが1なら
      もし、再生フラグが0なら、
         「play 整理券番号1番」をMCI送信。
         再生フラグは1。
停止ボタンとはボタン。
そのテキストは「停止」。
これをクリックした時は
   もし、MCIフラグが1なら
      もし、再生フラグが1なら、
         「stop 整理券番号1番」をMCI送信。
         「seek 整理券番号1番 to 0」をMCI送信
         再生フラグは0。
母艦を閉じた時は〜
   もし、MCIフラグが1なら「整理券番号1番」をMCI閉じる。

これで問題解決。
次回は再生中の曲名を表示させてみたりしますか?するかもしれません。