ひまわりユーザー プログラム掲示板 バックアップ
注意
ひまわりのススメ  □ ひまわり本家Home  □ 新着記事  □ 新規投稿  □ SEARCH  □ 参考プログラム集
ツリー表示

MESSAGE MCIでシークバー /moka (02/06/24(Mon) 12:36) [1002]


親記事 / 返信無し
NO.1002  MCIでシークバー
□投稿者/ moka -(2002/06/24(Mon) 12:36:39)
□U R L/ http://www.geocities.jp/moka21/teatime/
'MCIでシークバー
{---プログラム掲示板投稿フォーム---
【ソフト名】MCIでシークバー (バージョン 0.1)
【作 成 者】moka (連絡先:moka21@ybb.ne.jp)
   http://www.geocities.jp/moka21/teatime/
【種  別】フリーソフトウェア
【ひまわりのバージョン】ver.1.50で確認
【転  載】可(転載条件:ご自由に)
【改変運用】可
【ひまわり本体への梱包】可
【実行時に利用作成するファイル】無
【コメント】
   オーディオ&ビデオファイルを再生します。
   『MCI送信』を利用してで、シークバーを作ってみました。
   ファイルを開くのは、母艦にドロップしてもOK。
---投稿フォームここまで---}

母艦は、「MCIでシークバー」
   その、ファイルドロップは、オン。
   その、ファイルドロップした時は(
      ファイル名=イベントの値#0
      ファイルを開く。
   )
開くメニューを、メニュー作成。
   その、イベントは(
      「Audio|*.wav;*.mp3|Video|*.avi;*.mpg|*|*.*」の、読込ファイル選択。
      もし、それ=「」ならば、戻る。
      ファイル名=それ。
      ファイルを開く。
   )
バーを、バーとして、作成。
   その、幅は、250。その、高さは、20。
   その、イベントは、シーク。
再生ボタンを、ボタンとして、作成。
   その、イベントは(
      もし、状態=「」ならば、待機。
      'もし、(状態<>「一時停止」)&&(状態<>「シーク」)ならば、
      もし、(状態<>「停止」)&&(状態<>「一時停止」)&&(状態<>「シーク」)ならば、
         「seek file to 0」を、MCI送信。
      「play file」を、MCI送信。状態=「再生」
      一時停止ボタン=「一時停止」
      状態表示。
   )
(その、右側)に、停止ボタンを、ボタンとして、作成。
   その、イベントは(
      もし、(状態=「」)||(状態=「停止」)ならば、待機。
      「stop file」を、MCI送信。表示。状態=「停止」
      一時停止ボタン=「一時停止」
      バー=0。
   )
(その、右側)に、一時停止ボタンを、ボタンとして、作成。
   その、イベントは(
      もし、(状態=「」)||(状態=「停止」)ならば、待機。
      もし、状態=「一時停止」ならば(
         「resume file」を、MCI送信。状態=「再生」'再開する。
         一時停止ボタン=「一時停止」
      )違えば(
         「pause file」を、MCI送信。状態=「一時停止」'一時停止する。
         一時停止ボタン=「再開」
      )
   )
ラベルを、ラベルとして、作成。
状態=「」
終了処理に、終了処理設定。
待機

*終了処理
   もし、状態<>「」ならば、「close file」を、MCI送信。'終了時にcloseする。
   終わり。

*ファイルを開く
   母艦=ファイル名。
   もし、状態<>「」ならば、「close file」を、MCI送信。'前に開いたファイルを閉じる。
   「open {ファイル名} alias file」を、MCI送信。'指定したファイルを開く。
   「set file time format ms」を、MCI送信。'時間フォーマットをミリ秒にする。
   「status file length」を、MCI送信。'曲の長さをミリ秒で取得。
   曲の長さ=INT(それ/1000)。'秒にしてINTで整数にする。
   状態=「停止」
   バー=0。バーの、最大値は、曲の長さ。

   再生ボタンの、イベント。
   戻る。

*状態表示
   「status file position」を、MCI送信。'現在位置を取得する。
   ラベル=「{状態} : {INT(それ/1000)} / {曲の長さ} ms」
   
   バーの、イベントは、「」
   バー=INT(それ/1000)。
   バーの、イベントは、シーク。
   '↑バーの値を設定する前後で、イベントを解除&設定する。
   
   1秒後に、状態表示へ飛ぶ、タイマー設定。
   待機。
   
*シーク
   もし、状態=「」ならば、待機。
   「seek file to {バー*1000}」を、MCI送信。'バーの位置へ移動。
   もし、状態=「再生」ならば(
      状態=「シーク」。再生ボタンの、イベント。
   )
   一時停止ボタン=「一時停止」
   状態=「停止」
   戻る。
   



- Child Tree -