如何播放聲音檔或視訊檔
以下是透過 mciSendString 函數執行 MCI 指令進而播放聲音檔的方法:
mciSendString "close c:/windows/media/Ding.wav", vbNullString, 0, 0 mciSendString "open c:/windows/media/Ding.wav", vbNullString, 0, 0 mciSendString "play c:/windows/media/Ding.wav", vbNullString, 0, 0 綠色部分注意要小寫
|
在使用 MCI 指令之前,切記須先將 MCI 關閉,下次再執行播放時才能
正確播放,或者是將播放的位置改變到最前面,描述如下:
mciSendString "seek c:/windows/media/Ding.wav to start", vbNullString, 0, 0 mciSendString "play c:/windows/media/Ding.wav", vbNullString, 0, 0
|
另外,seek 的其他用法如下:
seek 媒體名稱 to start 將位置移到最前面 seek 媒體名稱 to end 將位置移到最後面 seek 媒體名稱 to position 將位置移到 position
|
其實以上所介紹的 MCI 指令,除了可以用來播放聲音檔之外,也可以用
來播放 MIDI 檔及 AVI 檔,不必經過任何修改,Windows 會自動產生一
個視窗播放此視訊檔,但是可不可以在指定的位置上播放呢?答案是可以
的,方法如下:
open AVI 檔名 parent hWnd style child 其中,hWnd 需填入某個物件的 hWnd |
執行上述命令之後,影片會被放置在物件的左上角,且影片的大小不受
物件大小的影響,如果想要改變影片播放的位置及大小時,可以在執行
play 指令前先執行 put 指令,格式如下:
put AVI 檔名 window at X Y [Width Height] 其中 X 及 Y 參數須填入位置,而 Width 及 Height參數則填入影片顯示出來的寬度及高度 |
其他常用的 MCI 指令:
pause 設備名稱 暫停播放 stop 設備名稱 停止播放 step 設備名稱 前進到下一個位置 step 設備名稱 reverse 後退到上一個位置 step 設備名稱 by N 前進或後退 N 個位置 (其中 N<0 即表示後退) status 設備名稱 position 讀取目前的播放位置 status 設備名稱 length 讀取媒體的總長度 |
小秘訣:
其實我們可以在 open 指令加上:
「API 類型」alias 自訂的媒體設備名稱」
open c:/windows/media/Ding.wav alias MyWav |
以上敘述的用途是為 c:/windows/media/Ding.wav 聲音檔取一個比較容易
記憶與書寫的名稱,接著在其他 MCI 的指令當中,便可以將繁雜的
c:/windows/media/Ding.wav 置換成 MyWav,例如:
mciSendString "close MyWav", vbNullString, 0, 0 mciSendString "open MyWav", vbNullString, 0, 0 mciSendString "play MyWav", vbNullString, 0, 0 |