基本介紹
- 中文名:Mulimedia控制項
- 屬性:按鈕
- 方式:下壓
- 用途:管理 MCI 設備的錄製和播放
簡介,用途,多媒體的要求和支持的設備類型,MCI 命令,對 Multimedia 控制項進行編程,打開 MCI 設備,管理多媒體資源,使用 Error 和 ErrorMessage 屬性,
簡介
使用多媒體控制項(摘自msdn)
Multimedia 控制項可用於管理媒體控制接口(MCI)設備。這些設備有:音效卡、MIDI 發生器、CD-ROM 驅動器、音頻播放器、視盤播放器和視頻磁帶錄放器。
Multimedia 控制項具有一組執行 MCI 命令的下壓式按鈕。這些命令與通常的 CD 機或錄像機上的命令(功能)很相象。
Multimedia 控制項
從左到右,這些按鈕依次定義為前一個、下一個、播放、暫停、向後步進、向前步進、停止、錄製和彈出。
用途
管理 MCI 設備的錄製和播放。
多媒體的要求和支持的設備類型
在 Windows 95 和 Windows NT 作業系統中提供了支持多種多媒體設備(比如音頻和視頻檔案)的驅動程式。其它設備,比如數字音頻磁帶機或圖象掃瞄器需要獨立的驅動程式,這些驅動程式通常由製造商提供。
設備分為兩種:簡單的和複合的。簡單的多媒體設備不需要數據檔案即可播放。例如,打開視頻或音頻 CD 播放器後,可通過“曲目”進行播放、迴繞和快進。而複合設備則必須通過數據檔案才能播放。
下表列出了 Multimedia 控制項支持的部分設備和為使用設備而由DeviceType 屬性要求的字元串,同時列出了對應檔案類型的是複合設備。
設備類型 | 字元串 | 檔案類型 | 描述 |
CD audio | cdaudio | 音頻 CD 播放器 | |
Digital Audio Tape | dat | 數字音頻磁帶播放器 | |
Digital video(not GDI-based) | DigitalVideo | 視窗中的數字視頻 | |
Other | Other | 未定義 MCI 設備 | |
Overlay | Overlay | 覆蓋設備 | |
Scanner | Scanner | 圖像掃瞄器 | |
Sequencer | Sequencer | .mid | 音響設備數字接口 (MIDI) 序列發生器 |
Vcr | VCR | 視頻磁帶錄放器 | |
AVI | AVIVideo | .avi | 視頻檔案 |
videodisc | Videodisc | 視盤播放器 | |
waveaudio | Waveaudio | .wav | 播放數字波形檔案的音頻設備。 |
MCI 命令
Multimedia 控制項使用一套高層次的、與設備無關的命令,被稱為媒體控制接口命令,它們可控制多種多媒體設備。其中的許多命令直接與 Multimedia 控制項的按鈕對應。例如,Play 命令就與“播放”按鈕相對應。
Multimedia 控制項本質上是該命令集的 Visual Basic 接口。如 Play 或 Close 等命令在 Win32(R) API 的 MCI 命令結構中都有等價命令。例如,Play 對應 MCI_PLAY。下表列出了 Multimedia 控制項使用的 MCI 命令,同時還列出了它們對應的 Win32 命令:
命令 | MCI 命令 | 描述 |
Open | MCI_OPEN | 打開 MCI 設備。 |
Close | MCI_CLOSE | 關閉 MCI 設備。 |
Play | MCI_PLAY | 用 MCI 設備進行播放。 |
Pause | MCI_PAUSE 或 MCI_RESUME | 暫停播放或錄製。 |
Stop | MCI_STOP | 停止 MCI 設備。 |
Back | MCI_STEP | 向後步進可用的曲目。 |
Step | MCI_STEP | 向前步進可用的曲目。 |
Prev | MCI_SEEK | 使用 Seek 命令跳到當前曲目的起始位置。如果在前一 Prev 命令執行後三秒內再次執行,則跳到前一曲目的起始位置;或者如果已在第一個曲目則跳到第一個曲目的起始位置。 |
Next | MCI_SEEK | 使用 Seek 命令跳到下一個曲目的起始位置(如果已在最後一個曲目,則跳到最後一個曲目的起始位置)。 |
Seek | MCI_SEEK | 向前或向後查找曲目。 |
Record | MCI_RECORD | 錄製 MCI 設備的輸入。 |
Eject | MCI_SET | 從 CD 驅動器中彈出音頻 CD。 |
Save | MCI_SAVE | 保存打開的檔案。 |
在 Visual Basic 中,這些命令用 Multimedia 控制項的 Command 屬性啟動。例如:
MMControl1.Command = "Open"雖然 Multimedia 控制項實現的 MCI 命令集,在大多數情況下是足夠用的,然而直接使用 Win32 API,可以提供高級的編程函式和技術。
詳細信息 有關 MCI 命令的其它信息,請參閱 Microsoft Multimedia Development Kit Programmer's Workbook 或 Software Development Kit Multimedia Programmer's Reference。在 Microsoft Developer Network CD 中,提供了這些參考,以及 MCI 命令的許多其它信息。
對 Multimedia 控制項進行編程
通過設定 Enabled 和 Visible 屬性,可使 Multimedia 控制項在運行時可見或不可見。按照預設規定,Enabled 和 Visible 屬性被設定為 True,這樣該控制項在運行時就是可見的。
如果不希望通過 Multimedia 控制項上的按鈕直接與用戶互動,而希望使用該控制項以求實現它的多媒體功能,那么可將 Visible 屬性設定為 False。無論應用程式使用用戶互動與否,都可以對 MCI 設備進行控制。
要使單個的按鈕可見或不可見,可以設定該按鈕對應的 Visible 和 Enabled 屬性。例如,Back 按鈕中的 BackEnabled 和 BackVisible 屬性。九個按鈕中的每一個都有對應的這些屬性。
在絕大多數情況下,這些按鈕的預設功能已足以管理 MCI 設備。然而,Multimedia 控制項還包含一些運行時屬性,允許增加或重定義按鈕命令。
Notify、NotifyMessage 和 NotifyValue 屬性提供了有價值的反饋信息,表明某個命令出錯或完成。
打開 MCI 設備
將 Multimedia 控制項放置到窗體中後,不管它被設定為可見的還是不可見的,第一步都是要訪問 MCI 設備。為做到這一點,需要設定一些運行時才可用的屬性。例如:
'設定媒體設備的初始化屬性值MMControl1.Notify = FalseMMControl1.Wait = TrueMMControl1.Shareable = FalseMMControl1.DeviceType = "CDAudio"如果將 Notify 屬性設定為 True,則在下一命令完成時,將產生 Done 事件。Done 事件提供了很有用的反饋信息,以指出該命令成功還是失敗。Wait 屬性指定 Multimedia 控制項是否等到下一命令執行完畢,才將控制權還給應用程式。Shareable 屬性限制或允許其它應用程式或進程使用該媒體設備。DeviceType 屬性被用來指定 MCI 設備的類型。
最後,Open 命令用來打開 MCI 設備。
'打開媒體設備MMControl1.Command = "Open"當該控制項是可見的時候,設定這些屬性,並使用 Open 命令,將激活由該 MCI 設備支持的 Multimedia 控制項的下壓式按鈕。例如,打開 cdaudio 設備將激活“前一個”、“下一個”、“播放”和“彈出”按鈕。按下“播放”後,“停止”和“暫停”按鈕被激活。
在一個窗體中可以加入多個 Multimedia 控制項的實例,以提供對多個 MCI 設備的並行控制。對每個設備只能使用一個 Multimedia 控制項。
管理多媒體資源
要正確地管理多媒體和系統資源,就必須在退出應用程式前將打開的 MCI 設備關閉。在包含 Multimedia 控制項的窗體卸載時,可在該窗體的 Form_Unload 過程中使用下面的語句,以關閉正打開著的 MCI 設備。
Private Sub Form_Unload (Cancel as Integer) Form1.MMControl1.Command = "Close"End Sub
使用 Error 和 ErrorMessage 屬性
使用 Error 和 ErrorMessage 屬性,可以處理 Multimedia 控制項產生的錯誤。在每個命令後可以檢查錯誤情況。例如,在 Open 命令之後,可用下面的代碼檢查 Error 屬性的值,以判斷是否存在 CD 驅動器。如果沒有可用的 CD 驅動器,則返回錯誤信息。例如:
If Form1.MMControl1.Error Then MsgBox Form1.MMControl1.ErrorMessage,vbCritical, "未安裝 CD 播放器或 CD 播放器不能正常工作"End If詳細信息 請參閱“ErrorMessage 屬性(多媒體 MCI 控制項)”以及“Error 屬性(多媒體 MCI 控制項)”。