?

用VB中的MCI控件實現多媒體編程

2009-06-19 05:53鄒禮萍
中國現代教育裝備·高教 2009年9期
關鍵詞:控件播放器實例

鄒禮萍

摘 要: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

猜你喜歡
控件播放器實例
Windows11自帶播放器使用技巧
使用“填表單”微信小程序 統計信息很方便
播放器
基于.net的用戶定義驗證控件的應用分析
Lon Duo Deck多功能播放器
完形填空Ⅱ
完形填空Ⅰ
利用VF6.0的Timer控件實現動畫效果
Spreadsheet控件在Delphi數據庫系統中的編程與應用
用太陽穴聽的MP3
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合