■MCIオブジェクト

情報


概要

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
  有効はオン
テストの状態は「再生」


名前:
コメント:


タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2009年05月31日 17:29
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。