果洛皆料电子有限公司

用MCI指令進行多媒體編程

  • 發(fā)布于:2024-01-18
  • 196 人圍觀
 我們有時會希望為自己的程序增加音效,例如警告聲等,這就需要播放WAV文件。較簡單的做法,我們可以使用多媒體控件(VB和Delphi都提供了MCI控件)來完成,但這樣做無疑會增加系統(tǒng)負擔和使程序體積增大(使用OCX的話尤其明顯)。如果我們的程序并非一個多媒體程序而僅僅是用來播放音效的話,就更不劃算了。有沒有更理想的方法呢?答案是肯定的,Windows已經(jīng)為我們提供了一個關于多媒體處理的動態(tài)連接庫WINMM.DLL(舊版本為MMSYSTEM.DLL),通過調(diào)用它所提供的API函數(shù),我們就可以使用MCI指令進行多媒體方面的操作了。

  讓我們先來了解一下什么是MCI指令,MCI的全稱是Media Control Interfase(媒體控制接口)。實際上MCI是一個高級的函數(shù)調(diào)用接口,我們可以把它看作是一個解釋器,通過它,我們就可以直接和外部音頻或視頻設備打交道了。

  接下來,就需要了解一下需要用到的API和MCI指令。有三個與MCI有關的API,它們是:

mciSendString(),mciExecute()和mciGetErrorString()。

mciSendString函數(shù)的功能是傳送指令字符串給MCI,mciExecute的功能和mciSendString一樣,不同的是當發(fā)生錯誤時mciExecute會彈出對話框顯示錯誤信息。mciGetErrorString的功能是將MCI錯誤代碼轉(zhuǎn)換為字符串?,F(xiàn)在假設我們的編程環(huán)境是VB或Delphi,下面就在這兩種環(huán)境的情況中介紹其使用方法。

  在VB中,調(diào)用API函數(shù)必須先進行聲明,它們的格式分別為:

Declare Function mciExecute Lib "winmm.dll" Alias "mciExecute" (ByVal lpstrCommand
As String) As Long
Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal
lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As
Long, ByVal hwndCallback As Long) As Long
Declare Function mciGetErrorString Lib "winmm.dll" Alias "mciGetErrorStringA"
(ByVal dwError As Long, ByVal lpstrBuffer As String, ByVal uLength As Long) As Long

  在Delphi中相對較簡單,由于Delphi已經(jīng)將多媒體相關的API聲明預編譯在MMSYSTEM.DCU文件中,所以我們只需要在單元的Uses語句后加上 mmsystem即可在本單元中使用上述三個API函數(shù)了。
萬企互聯(lián)
標簽: