'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送信。'バーの位置へ移動。 もし、状態=「再生」ならば( 状態=「シーク」。再生ボタンの、イベント。 ) 一時停止ボタン=「一時停止」 状態=「停止」 戻る。 |