*情報 作者名:TM 引用元:[[なでしこプログラム掲示板「MCI補助ライブラリ改」>http://www.himanavi.net/cgi/nade-bbs/cbbs.cgi?mode=al2&namber=136&rev=&no=0]] *概要 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の範囲を再生します。(単位はタイムフォーマット) *サンプルプログラム //○サンプル(動画プレーヤー) 「ムービー|*.avi;*.mpg;*.mpeg;*.mov;*.wmv」のファイル選択 もし、それが空なら、終わり 違えば、ファイルに代入。 母艦のタイトルは(ファイルからファイル名抽出) テストとはMCIオブジェクト。 そのファイルはファイル。 その表示先ハンドルは(母艦のハンドル) 母艦について クライアントWは(テストのW) クライアントHは(テストのH+10) サイズ変更した時は テストのWは(母艦のクライアントW) テストのHは(母艦のクライアントH-10) 閉じた時は テストを閉じる 更新=0 動画シークバーとはバー。 そについて レイアウトは下 Hは10 最大値は(テストの長さ) 変更した時は もし、更新中=0ならテストの位置は(動画シークバーの値)。テストの状態は「再生」。 更新タイマーとはタイマー。 そについて 値は100 時満ちた時は~ 更新中=1 動画シークバーの値は(テストの位置) 更新中=0 有効はオン テストの状態は「再生」 *本体 ■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送信。 ---- #comment() ----
下から選んでください: