1、第12章 Visual Basic多媒体应用,多媒体技术是计算机处理文本(text)、图像(image)、图形(graphic)、音频(audio)、视频(video)等多种信息的综合技术。它的出现使计算机在人类的文化娱乐活动中扮演了重要的角色,使越来越多的人和计算机交上了朋友。本章主要介绍多媒体控件、API函数、外部引用等方法,通过实例来介绍多媒体应用程序的开发。,退出,12.1 多媒体基础 12.2 MCI命令和MMControl控件 12.3 API函数 12.4 引用外部功能编程,12.1 多媒体基础,VB6.0提供了媒体控制接口MCI(Media Control Interface)
2、命令,让用户可以方便地使用计算机中的多媒体设备;提供了访问Windows应用程序接口(API)的方法,通过调用API函数,可以使用许多Windows的高级功能。还可以通过引用外部程序如MStts(微软发音引擎)等,实现更多的多媒体功能。多媒体的音频和视频有多种格式。,12.2 MCI命令和MMControl控件,12.2.1 MCI命令MCI提供了许多与设备无关,由应用程序直接调用的命令。 12.2.2 MMControl控件MMControl(Microsoft Multimedia Control)控件是一个用户和Windows多媒体系统之间的接口,是Visual Basic 6.0中进行
3、多媒体设计的重要部件。 1MMControl控件的添加 2MMControl控件的按钮功能 3MMControl控件的常用属性,12.2.3 MMControl控件的特有事件及编程步骤 1事件 2编程步骤(1)在工具箱中加载MMControl控件,并绘制到窗体中。(2)用MMControl控件的DeviceType属性设定多媒体设备类别。其值如表12-1所示。(3)用FileName属性指定多媒体文件。(4)用MMControl控件的Command属性控制多媒体设备。(5)编写相应特殊按钮的响应代码。(6)设备使用完毕后,注意用MMControl控件的Command属性的Close关闭设备。,
4、12.2.4 应用举例【例12.1】制作一个简单的.wav文件播放器。,在窗体上放置多媒体控制部件MMControl,运行界面如图12-2所示。以播放“c:windowsmedialogoff.wav”为例。程序代码如下:Private Sub Form_Load()Form1.MMControl1.Notify = FalseForm1.MMControl1.Wait = TrueForm1.MMControl1.Shareable = FalseForm1.MMControl1.DeviceType = “WaveAudio“,Form1.MMControl1.FileName = “c:
5、windowsmedialogoff.wav“ Form1.MMControl1.Command = “Open“End Sub启动程序,点击播放按钮,就可以听到logoff.wav的声音效果了。,12.3 API函数,12.3.1 API函数简介所谓API就是“应用程序接口”(Application Programing Interface),它是一些由操作系统自身调用的函数。Windows API函数由许多“动态链接库”或DLL组成。在32位Windows中,核心的API DLL有:gdi32.dll:图形显示界面的API。kernel32.dll:处理低级任务(比如内存和任务管理)的AP
6、I。,user32.d11:处理窗口和消息(Visual Basic程序员能把其中一些当作事件访问)的API。Winmm.dll:处理多媒体任务(如波形音频、MIDI音乐和数字影像等)的API。多媒体编程中主要使用的API函数就在这个链接库中。还不断有新的API出现,处理新的操作系统扩展,比如E-MAIL、联网和新的外设。,12.3.2 API函数的说明由于Windows API函数不是Visual Basic的内部函数,所以在使用它们之前必须加以声明。说明API函数一般有两种方法:一种是使用说明语句,另一种是使用Win32api.txt中的说明文本复制到代码窗口中。下面先介绍说明语句,使读者
7、对其中的主要关键字的意义有所了解,然后介绍VB中访问Win32api.txt的方法。格式:Declare Function 函数名 Lib“库名“ Alias “别名“(ByVal 参数1 As 类型,ByVal 参数n As 类型)As 函数类型。,说明: (1)声明中的Lib 和 Alias 的意义 (2)常见的API参数类型的说明 (3)声明中ByVal的作用 (4)API函数完整声明的简便方法访问步骤:首先打开“外接程序”菜单执行“外接程序管理器”命令,在“可用外接程序”框中选定VB6 API VIEWER,在“加载行为”复选框中选定“加载/卸载”,确定后在“外接程序”菜单中添加了“A
8、PI浏览器”。API浏览器如图12-4所示。,在“文件”菜单中执行“加载文本文件”,出现打开文件对话框,如图12-5所示所示。,选择Win32API.TXT在API浏览器中出现了可用项,选中需要声明的函数,把“选定项”中的文本复制到相应的模块(一般是.BAS标准模块或代码的通用说明部分),API函数的声明就完成了。由于API函数大多是由C+编制,而C+和VB的变量类型有很大差异,声明中如考虑不周很容易造成错误调用。因此,建议读者尽量使用API浏览器声明API函数。,12.3.3 API多媒体函数应用举例【例12.3】 利用API函数制作CD播放器。在本例中使用mciExecute函数,首先添加
9、标准模块写入声明使用该函数。Public Declare Function mciExecute Lib “winmm.dll“ _Alias “mciExecute“(ByVal lpstrCommand As String)As Long界面设置如图12-6所示,各控件属性按图例修改Caption属性值。其它属性用默认值。,在窗体加载模块设置按钮属性Private Sub Form_Load()Command1.Enabled = TrueCommand2.Enabled = FalseCommand3.Enabled = FalseCommand4.Enabled = FalseComm
10、and5.Enabled = FalseCommand6.Enabled = TrueEnd Sub,打开媒体设备Private Sub Command1_Click()mciExecute “open cdaudio alias cd“Command1.Enabled = FalseCommand2.Enabled = TrueCommand3.Enabled = FalseCommand4.Enabled = FalseCommand5.Enabled = FalseEnd Sub,播放音乐Private Sub Command2_Click()mciExecute “play cd“Co
11、mmand2.Enabled = FalseCommand3.Enabled = TrueCommand4.Enabled = FalseCommand5.Enabled = FalseEnd Sub,停止Private Sub Command3_Click()mciExecute “stop cd“Command2.Enabled = TrueCommand3.Enabled = FalseCommand4.Enabled = TrueCommand5.Enabled = TrueEnd Sub,倒回开头位置Private Sub Command4_Click()mciExecute “se
12、ek cd to start“Command1.Enabled = FalseCommand2.Enabled = TrueCommand3.Enabled = FalseCommand4.Enabled = FalseCommand5.Enabled = TrueEnd Sub,弹出CDPrivate Sub Command5_Click()If Command5.Caption = “弹碟“ ThenmciExecute “seek cd door open“Command5.Caption = “回位“ElsemciExecute “seek cd to close“Command5.C
13、aption = “弹碟“End If,Command1.Enabled = FalseCommand2.Enabled = TrueCommand3.Enabled = FalseCommand4.Enabled = FalseEnd Sub,关闭设备及程序Private Sub Command6_Click()mciExecute “close cd“EndEnd Sub,声道及声音控制Private Sub Option1_Click(index As Integer)mciExecute “set cd audio all off“Select Case indexCase 0mciE
14、xecute “set cd audio lift on“,Case 1mciExecute “set cd audio right on“Case 2mciExecute “set cd audio all on“mciExecute “set cd audio lift on“mciExecute “set cd audio right on“End SelectEnd Sub,12.4 引用外部功能编程,12.4.1 MSTTS简介在VB中除了Windows的功能外,还可以调用外部的功能链接库。下面我们通过对英文发音引擎的调用,来介绍通过外部引用的方法进行多媒体编程。,MSTTS是微软出
15、品的一套文字朗读引擎(Microsoft Text-To-Speech Engine)。由两个文件组成(MSTTS.EXE和SPCHAPI.EXE),执行后在Windows文件夹下添加了一个Speech文件夹。它提供了全篇英文朗读功能。在Windows中安装MSTTS后,实质上就是添加了语音朗读功能和英文朗读API功能联接库(Microsoft Text-To-Speech Engine和 Microsoft Speech API 4.0),在VB中可以通过引用Speech文件夹下的Vtxtauto.tlb文件来实现英文朗读的功能。Windows支持的其它公司的软件,其功能核心部分也大多可以用API函数的形式加以调用。,Vtxtauto.tlb文件不仅提供了全篇英文朗读功能,还提供了朗读控制的许多方法。如: 停止朗读:(VTxtAuto.VTxtAuto.StopSpeaking) 暂停朗读:(VTxtAuto.VTxtAuto.AudioPause) 恢复朗读:(VTxtAuto.VTxtAuto.AudioResume) 语速调整:(VTxtAuto.VTxtAuto.Speed)等等。,