APP下载

用VB中的MCI控件实现多媒体编程

2009-06-19邹礼萍

中国现代教育装备·高教 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