Multimedia Controle Interface
HSP


PSH x HSP 講座 オブジェクト COM MCI 用語 ソフト HTMLタグ リンク

mci

mci ,"strings" [MCIにコマンドを送る]
"strings" MCIコマンド文字列
MCI(Multimedia Control Interface)にコマンド文字列を送ります。MCIに対応した
MIDI再生、ムービー再生などを行なうことができます。
MCIコマンドの詳細については、Windows MCIの解説書をお読みください。
ここでは簡単な使用法だけを紹介しておきます。

  mci "play filename"

で、"filename"のファイルを再生します。たとえば、"play aaaa.mid"ならば、"aaaa.mid"
というMIDIファイルを演奏します。拡張子がaviなら動画の再生、wavならPCMの再生、
その他MCIに登録されているデバイスを再生することができます。

  mci "open filename alias hsp"

で、"filename"のファイルをオープンして、これ以降 "hsp"という名前をエイリアスに
することができます。この後で、

  mci "play hsp" ; デバイスの再生
  mci "stop hsp" ; デバイスの再生ストップ
  mci "close hsp" ; デバイスのクローズ

などの指定をすることができるようになります。
mciに命令を送った場合の結果はシステム変数 statに反映されます。stat が-1の
場合は、mci命令を解釈する時点でエラーが出ていることを示しています。
また、mciでステータスを読み出すコマンドを送った場合も、stat に結果が反映されます。

MCIというのはWindowsに組み込まれているマルチメディアを制御するためのインターフェイスで、簡単にメディア ファイルを扱えるよう制御できる機能です。動画(ムービー)のフィアルを表示したり、音楽(サウンド)のファイル を再生したりすることができます。HSPのmci命令は、このMCIに処理を送信するための命令になります。

HSPのmci命令でWindowsシステムサウンドの出力。レジストリに再生ファイルが指定されてない場合はデフォルト(.Default)のが鳴る模様。(エイリアス名を参照したページ)

 onexit *owari

  alias.0=".Default"   ;一般の警告音
  alias.1="AppGPFault"   ;プログラムエラー
  alias.2="CCSelect"   ;選択
  alias.3="Close"   ;プログラムの終了
  alias.4="CriticalBatteryalarm"  ;バッテリ低下アラーム
  alias.5="DeviceConnect"   ;デバイスの接続
  alias.6="DeviceDisconnect"   ;デバイスの切断
  alias.7="DeviceFail"   ;デバイスの接続の失敗
  alias.8="LowBatteryAlarm"   ;バッテリ切れアラーム
  alias.9="MailBeep"   ;新着メールの通知
  alias.10="Maximize"   ;最大化
  alias.11="MenuCommand"   ;メニューコマンド
  alias.12="MenuPopup"   ;メニューポップアップ
  alias.13="Minimize"   ;最小化
  alias.14="Open"   ;プログラムの起動
  alias.15="PrintComplete"   ;印刷完了
  alias.16="RestoreDown"   ;元に戻す (縮小)
  alias.17="RestoreUp"   ;元に戻す (拡大)
  alias.18="ShowBand"   ;ツールバーバンドの表示
  alias.19="SystemAsterisk"   ;情報メッセージ
  alias.20="SystemDefault"   ;一般の警告音
  alias.21="SystemExclamation"  ;警告メッセージ
  alias.22="SystemExit"   ;ウィンドウズの終了
  alias.23="SystemHand"   ;システムエラー
  alias.24="SystemNotification"  ;システム通知
  alias.25="SystemQuestion"   ;問い合わせメッセージ
  alias.26="SystemStart"   ;ウィンドウズの起動
  alias.27="WindowsLogoff"   ;ウィンドウズ ログオフ
  alias.28="WindowsLogon"   ;ウィンドウズ ログオン

  notesel list
  foreach alias
  noteadd alias(cnt)
  loop

  objsize 200
  listbox value,300,list
  button "再生",*play
  stop

*play
  mci "sound "+alias(value)+""
  stop

*owari
  mci "close"

  end

簡易MP3プレーヤー

;  PSHxHSP PLAYER
;  製作人-PSH

    onexit *owari

    screen 0,260,90
    title "PSHxHSP PLAYER"

    cls 2

    objsize 80, 20
    pos 10,10:button "OPEN",*psh_open
    pos 90,10:button "PLAY",*psh_play
    pos 170,10:button "STOP",*psh_stop

;
    mci "set HSP time format milliseconds"

    color 0,0,0
    boxf 10,40,250,80

    font "MS UI Gothic",11,1

    stop

*psh_open
    dialog "mp3",16,"MP3ファイル"    
    if stat=0:stop
    file=refstr

    mci "open \""+refstr+"\" type mpegvideo alias HSP" ; ファイルオープン

    exist file
    sdim id3_data,0x80
    bload file, id3_data,,strsize-0x80 ; ID3タグを確認

    color
    boxf 10,40,250,80

   if wpeek(id3_data,0)!0x4154 : stop

    color 0,$FF,$88

    getstr id3_title,id3_data,0x03 ; タイトル文字列を取り出す
    pos 20,45
    mes id3_title

    getstr id3_artist,id3_data,0x21 ; アーティスト文字列を取り出す
    pos 20,65
    mes id3_artist

    stop
   

*psh_play
    mci "play HSP" ; 再生

    repeat
        mci "status HSP position" ; 再生時間取得
        title "PSHxHSP PLAYER ["+strf("%02d",stat/1000/60)+":"+strf("%02d",stat/1000\60)+"]"

        await 100
    loop

*psh_stop
    mci "stop HSP" ; 再生停止
    stop

*owari
    mci "close HSP" ; 解放

    end

曲の長さ

; 曲の長さ・位置 (mci命令)

   mci "set HSP time format milliseconds"

  mci "status HSP length" ; 曲全体の長さ
  mes ""+(stat/1000/60)+"分 "+(stat/1000\60)秒+""

  mci "status HSP position" ; 現在の再生位置
  mes ""+(stat/1000/60)+"分 "+(stat/1000\60)秒+""

簡易MP3プレーヤー

; 再生状態 (mci命令)
; 「stopped」(停止中)・「playing」(再生中)・「paused」(一時停止中)の3状態の取得

  mci "status HSP mode"
  mes refstr

mmload

HSPのmmloadはサウンド音楽ファイル(WAVE、MIDI、MP3、WMA)やムービー動画ファイル(AVI、WMV、MPEG)を読み込んでおく命令。p1にバッファ番号、p2に読み込みモード。

mmplay・mmstop

mmloadであらかじ読み込んでおいたサウンド音楽、ムージー動画のファイルの再生、停止する命令。p1にmmloadで指定したバッファ番号を指定。mciと比べて、mm命令には再生と停止以外の処理はできない。posがHSPウィンドウの動画系の再生表示位置として反映。MCI機能ともにmmplayも同時再生はできません。

; 音楽ファイルの読み込みと再生

button "再生", *play

dialog "wav;*.mid;*.mp3",16,"ファイル"
mmload refstr,0,1
stop

; 再生
*play
mmplay 0

関連リンク

〜〜〜〜〜

HSP

PSH x HSP [サイトマップ]