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