■MCIオブジェクト

「■MCIオブジェクト」の編集履歴(バックアップ)一覧に戻る
■MCIオブジェクト」を以下のとおり復元します。
*情報
作者名: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()

----

復元してよろしいですか?

ツールボックス

下から選んでください:

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