「なでしこ」で音楽再生
さて、連載物になってまいりました。
今日は「停止」ができるようにしましょう。
ボタンを追加して、停止の処理をさせればいいわけです。
ここで、MCIの仕様を見てみましょう。
このサイトが便利かも。*1
音楽を停止する stop ABC
ABCとはこのブログでの説明で言う「整理券番号1番」ですね。
「stop 整理券番号1番」をMCI送信。
これで、停止ができるわけです。
では、ボタン付けてごちゃごちゃ書いてみるだけですね。
MCIフラグは0。
「*.mp3;*.wav;*.wma」のファイル選択を対象曲に代入。
もし、それが空なら終わる。
プレイボタンとはボタン。
そのテキストは「再生」。
これをクリックした時は
もし、MCIフラグが0なら、
対象曲を「整理券番号1番」でMCI開く。
「play 整理券番号1番」をMCI送信。
MCIフラグは1。
停止ボタンとはボタン。
そのテキストは「停止」。
これをクリックした時は
もし、MCIフラグが1なら、
「stop 整理券番号1番」をMCI送信。
母艦を閉じた時は〜
もし、MCIフラグが1なら
「整理券番号1番」をMCI閉じる。
MCIフラグが1、ということは再生中ということなので、停止コマンドを送ってもおkです。
ただし問題が。
停止を押してから、再生を押しても、MCIフラグが変わってないので再生されません。
ということで、MCIフラグを一旦外し(また今度使うかも)、再生フラグを使って、再生状態がわかるようにしましょう。
再生フラグは0。
「*.mp3;*.wav;*.wma」のファイル選択を対象曲に代入。
もし、それが空なら終わる。
対象曲を「整理券番号1番」でMCI開く。 #先にMCIは開いておきます
プレイボタンとはボタン。
そのテキストは「再生」。
これをクリックした時は
もし、再生フラグが0なら、
「play 整理券番号1番」をMCI送信。
再生フラグは1。
停止ボタンとはボタン。
そのテキストは「停止」。
これをクリックした時は
もし、再生フラグが1なら、
「stop 整理券番号1番」をMCI送信。
再生フラグは0。
母艦を閉じた時は〜
「整理券番号1番」をMCI閉じる。
ただ、これを実行すると、不具合があるのが判ります。
停止を押して、再生を押すと、停止を押した時間から始まります。
つまり一時停止なのです。
これは、停止だけでは再生を開始する秒数が変わらないからです。
再生時間を変えるには「seek ABC to 〜〜」というものを送信すればよいです。
それを入れて、問題解決ver。
再生フラグは0。
「*.mp3;*.wav;*.wma」のファイル選択を対象曲に代入。
もし、それが空なら終わる。
対象曲を「整理券番号1番」でMCI開く。
プレイボタンとはボタン。
そのテキストは「再生」。
これをクリックした時は
もし、再生フラグが0なら、
「play 整理券番号1番」をMCI送信。
再生フラグは1。
停止ボタンとはボタン。
そのテキストは「停止」。
これをクリックした時は
もし、再生フラグが1なら、
「stop 整理券番号1番」をMCI送信。
「seek 整理券番号1番 to 0」をMCI送信
再生フラグは0。
母艦を閉じた時は〜
「整理券番号1番」をMCI閉じる。
これでおk。
次回は曲選択ボタンを実装したりしましょう。