情報
概要
MCI命令をグループでまとめて使いやすくしました。
解説
//○使い方
テストとはMCIオブジェクト # まず宣言して、
テストのファイルは「test.mp3」# 次にファイルを設定します。
//(処理)
テストを閉じる # 使い終わったら閉じます。
○変数
・ファイル
・表示先ハンドル
ファイルが動画の場合、表示先のウィンドウハンドルを指定します。
・X
・Y
・W
・H
ファイルが動画の場合、動画の再生サイズを指定します。GUI部品と同じです。
・タイムフォーマット
初期値はミリ秒です。通常は変更の必要はありません。
・長さ
ファイルの長さ(単位はタイムフォーマット)です。
・状態
演奏状態です。(再生,playing,停止,stoped,一時停止,paused)
・位置
現在の再生位置です。(単位はタイムフォーマット)
・ミュート …オン(1)またはオフ(0)
・音量
初期値は1000です。
・右音量
・左音量
・速さ
初期値は1000です。
・ループ …オン(1)またはオフ(0)
○関数
・元サイズ
ファイルが動画の場合、ファイルの元々のX,Y,W,Hを配列で返します。
・範囲再生(AからBの)
AからBの範囲を再生します。(単位はタイムフォーマット)
本体
■MCIオブジェクト
・ファイル ←ファイル設定 →ファイル取得
・表示先ハンドル ←表示H設定 →表示H取得
・X ←X設定 →X取得
・Y ←Y設定 →Y取得
・W ←W設定 →W取得
・H ←H設定 →H取得
・タイムフォーマット ←TF設定 →TF取得 #{ms(ミリ秒)|msf(mm:ss:ff)|tmsf(t:mm:ss:ff)}
・長さ →長さ取得
・状態 ←状態設定 →状態取得 #{再生,playing|停止,stoped|一時停止,paused}
・位置 ←位置設定 →位置取得
・ミュート ←ミュート設定 →ミュート取得
・音量 ←音量設定 →音量取得
・右音量 ←右音量設定 →右音量取得
・左音量 ←左音量設定 →左音量取得
・速さ ←速さ設定 →速さ取得
・ループ{=0}
・元サイズ →元サイズ取得
・{非公開}動画か(V)~OR(V=「.avi」,OR(V=「.mpg」,OR(V=「.mpeg」,OR(V=「.wmv」,V=「.mov」))))
・範囲再生(AからBの)~
もし、ループがオンなら「play {名前} repeat from {A} to {B}」をMCI送信。
違えば「play {名前} from {A} to {B}」をMCI送信。
・{非公開}ファイル設定(FILE)~
もし、Fファイルが空でなければ名前をMCI閉じる
もし、(FILEが存在)でなければ「ファイルが存在しません」でエラー発生
「open "{FILE}" alias "{名前}" type mpegvideo」をMCI送信。
FファイルはFILE
もし、動画か(Fファイルから拡張子抽出)なら
元サイズ取得。
FWは_[2]
FHは_[3]
・{非公開}F表示H
・{非公開}表示H設定(V)~
もし、動画か(Fファイルから拡張子抽出)なら
もし、Fファイルが空でなければ
「window {名前} handle {V}」をMCI送信。
F表示H=V
違えば、「ファイルが動画ではありません」でエラー発生
・{非公開}表示H取得~
それ=F表示H
・{非公開}FX{=0}
・{非公開}FY{=0}
・{非公開}FW{=0}
・{非公開}FH{=0}
・{非公開}X設定(V)~
もし、動画か(Fファイルから拡張子抽出)なら
もし、Fファイルが空でなければ
「put {名前} destination at {V} {Y} {W} {H}」をMCI送信。
FX=V
違えば、「ファイルが動画ではありません」でエラー発生
・{非公開}X取得~それ=FX
・{非公開}Y設定(V)~
もし、動画か(Fファイルから拡張子抽出)なら
もし、Fファイルが空でなければ
「put {名前} destination at {X} {V} {W} {H}」をMCI送信。
FY=V
違えば、「ファイルが動画ではありません」でエラー発生
・{非公開}Y取得~それ=FY
・{非公開}W設定(V)~
もし、動画か(Fファイルから拡張子抽出)なら
もし、Fファイルが空でなければ
「put {名前} destination at {X} {Y} {V} {H}」をMCI送信。
FW=V
違えば、「ファイルが動画ではありません」でエラー発生
・{非公開}W取得~それ=FW
・{非公開}H設定(V)~
もし、動画か(Fファイルから拡張子抽出)なら
もし、Fファイルが空でなければ
「put {名前} destination at {X} {Y} {W} {V}」をMCI送信。
FH=V
違えば、「ファイルが動画ではありません」でエラー発生
・{非公開}H取得~それ=FH
・{非公開}元サイズ取得~
もし、動画か(Fファイルから拡張子抽出)なら
もし、Fファイルが空でなければ
「where {名前} source」をMCI送信。
「 」で区切る。
違えば、「ファイルが動画ではありません」でエラー発生
・閉じる~
もし、Fファイルが空でなければ名前をMCI閉じる。
Fファイルは空。
・{非公開}Fファイル
・{非公開}ファイル取得~それはFファイル
・{非公開}状態取得~
もし、Fファイルが空でなければ「status {名前} mode」をMCI送信。
違えば、それは空
・{非公開}状態設定(V)~
もし、Fファイルが空でなければ
もし、OR(V=「playing」,V=「再生」)なら
もし、自身→ループ=1なら「play {名前} repeat」をMCI送信。
違えば「play {名前}」をMCI送信。
もし、OR(V=「stoped」,V=「停止」)なら名前をMCI停止
もし、OR(V=「paused」,V=「一時停止」)なら「pause {名前}」をMCI送信。
・{非公開}TF設定(V)~「set {名前} time format {V}」をMCI送信。
・{非公開}TF取得~「status {名前} time format」をMCI送信。
・{非公開}位置設定(V)~
もし、Fファイルが空でなければ
F状態は状態
Vで条件分岐
「始め」なら「seek {名前} to start」をMCI送信。
「終わり」なら「seek {名前} to end」をMCI送信。
違えば「seek {名前} to {V}」をMCI送信。
状態は「{F状態}」
・{非公開}位置取得~
もし、Fファイルが空でなければ「status {名前} position」をMCI送信。
違えば、それ=0
・{非公開}音量設定(V)~
もし、Fファイルが空でなければ「setaudio {名前} volume to {V}」をMCI送信。
・{非公開}音量取得~
もし、Fファイルが空でなければ「status {名前} volume」をMCI送信。
違えば、それ=1000
・{非公開}右音量設定(V)~
もし、Fファイルが空でなければ「setaudio {名前} right volume to {V}」をMCI送信。
・{非公開}右音量取得~
もし、Fファイルが空でなければ「status {名前} right volume」をMCI送信。
違えば、それ=1000
・{非公開}左音量設定(V)~
もし、Fファイルが空でなければ「setaudio {名前} left volume to {V}」をMCI送信。
・{非公開}左音量取得~
もし、Fファイルが空でなければ「status {名前} left volume」をMCI送信。
違えば、それ=1000
・{非公開}Fミュート{=0}
・{非公開}ミュート設定(V)~
もし、Fファイルが空でなければ
もし、Vが1なら
「set {名前} audio all off」をMCI送信。
Fミュート=1
違えば
「set {名前} audio all on」をMCI送信。
Fミュート=0
・{非公開}ミュート取得~それ=Fミュート
・{非公開}速さ設定(V)~
もし、Fファイルが空でなければ「set {名前} speed {V}」をMCI送信。
・{非公開}速さ取得~
もし、Fファイルが空でなければ「status {名前} speed」をMCI送信。
違えば、それ=1000
・{非公開}長さ取得~「status {名前} length」をMCI送信。
//サンプルプログラム
//○サンプル(動画プレーヤー)
「ムービー|*.avi;*.mpg;*.mpeg;*.mov;*.wmv」のファイル選択
もし、それが空なら、終わり
違えば、ファイルに代入。
母艦のタイトルは(ファイルからファイル名抽出)
テストとはMCIオブジェクト。
そのファイルはファイル。
その表示先ハンドルは(母艦のハンドル)
母艦について
クライアントWは(テストのW)
クライアントHは(テストのH+10)
サイズ変更した時は
テストのWは(母艦のクライアントW)
テストのHは(母艦のクライアントH-10)
閉じた時は
テストを閉じる
更新=0
動画シークバーとはバー。
そについて
レイアウトは下
Hは10
最大値は(テストの長さ)
変更した時は
もし、更新中=0ならテストの位置は(動画シークバーの値)。テストの状態は「再生」。
更新タイマーとはタイマー。
そについて
値は100
時満ちた時は~
更新中=1
動画シークバーの値は(テストの位置)
更新中=0
有効はオン
テストの状態は「再生」
最終更新:2009年05月31日 17:29