鄒禮萍
摘 要:VB具有很強的多媒體處理功能,尤其以利用MCI實現多媒體最為簡單。本文闡述了在VB中利用MCI控件進行多媒體程序設計的方法。
關鍵詞:多媒體MCIVB
隨著多媒體技術的發展,多媒體硬件環境和軟件環境的不斷完善,以及VB在多媒體方面的強大能力,用VB進行多媒體程序設計已是當前多媒體軟件開發的主要手段,而MCI是VB中實現多媒體編程最有效的方法。
一、VB多媒體程序設計概述
1.Visual Basic6.0簡介
Visual Basic6.0是由微軟公司推出的一套完整的Windows系統軟件開發工具,可用于開發Windows環境下的各類應用程序,是一種可視化、真正面向對象、采用事件驅動方式的結構化高級程序設計語言和工具的完美集成。VB從根本上改變了傳統的程序設計模式,可以處理文本、圖像、動畫、聲音等多媒體數據,因而被計算機界稱為“最富有創新精神的編程工具之一”。
2.VB的多媒體環境
任何一種程序設計語言都離不開操作系統,用Visual Basic開發多媒體程序的實質是利用了Windows操作系統的多媒體能力。
目前多媒體制作工具可分為兩類,一類是專為開發多媒體節目和電子出版物而設計的多媒體編著工具(如Authoring tools);另一類是通用的軟件開發工具,如Visual Basic、Visual C++等。采用通用程序開發工具的優點是靈活性高,軟件運行效率高。VB在多媒體應用軟件開發方面有著良好的前景,具有很強的多媒體處理控制功能,VB的多媒體控制MCI(Media control interface:媒體控制接口)包括一套控制音頻和視頻設備,但具有與設備無關的命令,用它來進行多媒體設計非常方便。
二、媒體控制接口MCI
1.MCI的使用
MCI(Multimedia Control Interface)是微軟Windows定義的多媒體接口標準,具有設備無關性和可擴展性,使用戶不需要使用低級的API就可以播放多媒體素材。MCI控件管理MCI設備上的多媒體文件的記錄與回放,用來向聲卡、MIDI序列發生器、CD-ROM驅動器、視頻CD播放器等設備發出MCI命令。
MCI控件不是內部控件,而是Active X控件,不出現在工具箱中,為把它放到工具箱中,執行“工程”/“部件”命令/“控件”命令,選擇“Microsoft Multimedia Control 6.0,單擊“確定”按鈕,則MCI控件添加到工具箱中。
MCI控件在窗體中的外觀如圖1所示。從左至右共九個按鈕被分別被定義為Prev(移前標)、Next(移后標)、Play(播放)、Pause(暫停)、Back(倒移)、Step(前移)、Stop(停止)、Record(錄制) 和 Eject(退出)。
3.MCI命令及其使用
MCI控件使用一套高級的、與設備無關的命令、稱為媒體控制接口命令,可用來控制多種多媒體設備,其中的部分命令直接與MCI控件的按鈕對應,例如,PLAY命令與“播放”按鈕相對應。
從本質上說,MCI控件是MCI命令集的VisualBasic接口。例如,Play對應MCl_Play,Close對應MCI_Close等。下表列出了MCI控件使用的MCI命令及所對應的win32API命令。
在允許用戶對MCI控件進行操作之前,應用程序必須先將MCI設備打開,并在MCI控件上啟用適當的按鈕,在Visual Basic中,應將MCI Open命令放到Form_Load事件中。
三、Visual Basic多媒體應用程序設計步驟及實例
在使用該多媒體控件MCI時,首先用OPEN命令打開MCI設備并建立一個與之對應的文件,以便進行錄或放等操作;一旦設備打開成功,就可以向它發出各種操作命令來完成指定的工作任務;最后要用Close命令來關閉設備和數據文件。在使用MCI之前必須安裝好多媒體設備如聲卡、CD-ROM等以及這些設備的驅動程序,否則MCI將不聽指揮。下面就利用MCI控件來做幾個實例。
實例1:CD播放器
利用VB的MCI控件實現CD播放器很簡單,界面如圖2。
Private Sub Form_Load()
MMControl1.DeviceType = "CDAudio"
MMControl1.Command = "Open"
End Sub
Private Sub Form_Unload(Cancel As Integer)'關閉程序時要關閉設備
MMControl1.Command = "stop"
MMControl1.Command = "close"
End Sub
在CD驅動器中放入一張CD唱片,然后運行,點一下Play按鈕即可播放。若驅動器中無CD盤則所有按鈕都處于無效狀態。
實例2:AVI播放器
在多媒體系統中,AVI(Audio Video Interface,音頻視頻接口)文件是存儲電影(包括聲音和圖像)的標準格式。在實際工作中,播放AVI文件的方法有許多種,而其中以利用VB的MCI控件的方法最為簡單、方便。
先準備好一個AVI文件,在窗體上添加一個TextBox控件,用該文本框作為播放窗口,設置其MultiLine屬性為True,Enable屬性為False,這樣它就不能接收用戶輸入了;三個按鈕控件,Name屬性分別為CmdPlay(播放)、CmdPause(暫停)、CmdExit(退出);一個MMControl控件,設置其Visible屬性為False,使它運行時不可見。設計完畢的窗體如圖3。
Private Sub Form_Load()
MMControl1.DeviceType = "AVIVideo"'指定Mci設備類型
MMControl1.FileName=App.Path &" est.avi"'設定播放的文件,你可以自行設定
MMControl1.Command = "Open" '執行打開命令
MMControl1.hWndDisplay = Text1.hWnd '在文本框上播放
CmdPause.Enabled = False
End Sub
實例3:通用播放器
在窗體上放置通用對話框控件、MMcontrol控件、Picturehe和Command控件,建立如圖4的界面。
本例編寫了一個通用的播放多媒體音樂的程序,單擊要播放的音樂按鈕,即可打開通用對話框,選擇要播放的音樂即可以播放各種音樂,程序如下:
CommonDialog1.Filter = "all file|*.*|(*.midi)|*.midi"
CommonDialog1.FilterIndex = 2
CommonDialog1.DialogTitle = "open file(*.exe)"
CommonDialog1.Action = 1
If CommonDialog1.FileName = "" Then
MsgBox "No file selected", 37, "checking"
Else
MMControl1.Visible = False
MMControl1.DeviceType = "midiaudio"
MMControl1.FileName = CommonDialog1.FileName
MMControl1.Command = "open"
MMControl1.Command = "play"
End If
圖片也是一種多媒體,單擊顯示圖片按鈕,選擇圖片,即可在圖片框中顯示圖片。程序如下:
CommonDialog1.Filter = "all file|*.*|(*.bmp)|*.bmp|(*.jpg)|*.jpg|(*.gif)|*.gif|(*.emf)|*.emf"
CommonDialog1.FilterIndex = 1
CommonDialog1.DialogTitle = "open file(*.exe)"
CommonDialog1.Action = 1
If CommonDialog1.FileName = "" Then
MsgBox "No file selected", 37, "checking"
Else
Set Picture1.Picture = LoadPicture
(CommonDialog1.FileName)
End If
四、結束語
Visual Basic中提供了很多多媒體控件,包括 MCI、ActiveMovie、MediaPlayer、Animation等,但是MCI控件是最方便、快捷、高效的方法,可見,Visual Basic確實是開發多媒體軟件的理想工具。
參考文獻
[1]劉炳文.VISUAL BASIC圖形與多媒體程序設計[M].北京:清華大學出版社,2002
[2]楊誠.多媒體程序設計(VB版)[M].北京:清華大學出版社,2004
[3]賽奎春.Visual Basic精彩編程200例[M].北京:機械工業出版社.2001
[4]張露.高級語言程序設計教程:Visual Basic 6.0(中文版)[M].北京:人民郵電出版社2002