多媒体编程初步.ppt
返回目录,第十章 多媒体编程初步,10.1 多媒体技术概述,10.2 VB中的多媒体控件,10.3 利用API函数制作多媒体程序的方法,本章将介绍VB在多媒体处理方面的基础知识。通过生动具体的示例,读者可以从中感受到VB在多媒体编程方面的魅力和便捷,并对常用的几种多媒体控件的使用方法有所掌握和了解,使得能够初步的掌握多媒体编程技术,能够利用所学知识开发一些多媒体应用程序。,10.1 多媒体技术概述,返回首页,多媒体是由英文单词“Multimedia”直接翻译而来的,其中“Multi”是指“多”,“Media”是指“媒体”,其含义就是承载信息的载体。通常我们所说的“媒体”比如广播、电视、报纸等等,它们都是非数字化的;随着计算机技术和通信技术的飞速发展,现在,我们把各种媒体信息数字化并综合成一种全新的媒体。把这种将不同形式的各种媒体信息数字化,并结合计算机技术对它们进行组织、加工来提供给用户使用的新媒体称之为“多媒体”。,按照信息形式的不同,多媒体包括了文本、图形、图像、声音、动画和视频等等。多媒体技术就是把声音、图像、文本、视频等媒体通过计算机集成在一起的技术。也就是说,它是通过计算机把文本、图形、图像、声音、动画和视频等多种媒体信息综合起来,使之建立起一种逻辑连接,并集成为一个具有交互性的系统的技术。,10.2 VB中的多媒体控件,返回首页,10.2.1 动画(Amination)控件,VB 提供的视频动画控件Animation,可以播放AVI视频动画,但它只能播放没有声音的AVI视频动画。在播放动画的同时,可以同时执行其他代码。要使用Animation控件,首先需要在“工程”菜单中,点击“部件”菜单项,再在打开的“部件”对话框控件列表中钩选“Microsoft Windows Common Controls-2 6.0”,最后点击对话框的“确定”按钮,便可将该控件添加到常用工具箱中来。,VB 提供的视频动画控件Animation,可以播放AVI视频动画,但它只能播放没有声音的AVI视频动画。在播放动画的同时,可以同时执行其他代码。要使用Animation控件,首先需要在“工程”菜单中,点击“部件”菜单项,再在打开的“部件”对话框控件列表中钩选“Microsoft Windows Common Controls-2 6.0”,最后点击对话框的“确定”按钮,便可将该控件添加到常用工具箱中来。,1属性 要通过该控件播放视频动画必须明确其相关的属性和方法。主要属性如下:Name属性:设置控件名,标识控件。AutoPlay属性:用来在加载AVI文件后,是否自动播放。BackStyle属性:确定控件在透明的背景上还是在动画剪辑中所指定的背景颜色上绘制动画。Center属性:确定播放的AVI文件是否居中。当该值为Ture时,会根据图像的大小,在控件中心显示文件;当属性值为False时,AVI文件定位在控件的(0,0)处。,Enabled属性:决定一个对象是否响应用户生成事件。ToolTipText属性:设置提示的文本。Visible属性:设置对象是否可见。2事件和方法 Animation控件本身具有事件,比如鼠标事件(Click,DblClick,MouseMove,MouseUp,MouseDown等)、焦点事件(设置焦点的GotFocus事件和失去焦点的LostFocus事件)等。动画Animation控件有多种方法,主要的方法如下:,Open方法:打开播放的AVI文件。Close方法:使控件Animation关闭当前打开的AVI文件。Play方法:开始播放。Stop方法:停止播放。,实例10.1:利用Animation控件播放AVI动画。操作步骤如下:1.添加控件 执行“工程”“部件”菜单命令,在打开的“部件”对话框“控件”列表中选择“Microsoft Windows Common Controls 6.0”和“Microsoft Windows Common Controls-2 6.0”复选框,单击确定按钮,即可将通用对话框控件和Animation控件添加至工具箱中。2.控件选择 2个通用对话框控件:CommonDialog1,CommonDialog2;2个命令按钮控件:Command1,Command2;1个动画控件:Animation1.,3.控件属性设置 控件及其属性设置如表10-2所示。,表10-2 控件及其属性,4.布局及运行结果如图10-1所示,如图10-2所示。,图10-1,图10-2,控件布局图,运行结果图,5.代码编写在“开始播放”按钮的单击事件中添加如下代码:Private Sub Command1_Click()CommonDialog1.Filter=(*.avi)|*.avi 设置文件的类型CommonDialog1.ShowOpen 弹出打开文件对话框If CommonDialog1.FileName=Then Exit SubAnimation1.Open CommonDialog1.FileNameAnimation1.Play 开始播放Command1.Enabled=False 禁用“开始播放”命令按钮Command2.Enabled=True 启用“停止动画”命令按钮End Sub,在“停止动画”命令按钮中添加如下代码:Private Sub Command2_Click()Animation1.Stop 停止动画Animation1.Close 关闭打开文件Command1.Enabled=True 启用“开始播放”命令按钮Command2.Enabled=False 禁用“停止动画”命令按钮End Sub,10.2.2 多媒体MCI控件,多媒体MCI控件通常也叫MMControl多媒体控件,VB中的Microsoft Multimedia Control 6.0中就提供了该控件。这种控件可以用来向声卡、MIDI序列发生器、CD-ROM驱动器、视频VCD播放器等设备发出MCI命令。由此对这些设备进行常规的启动、播放、前进、后退、停止等操作。MCI控件可以播放多种文件格式,包括WAV、MIDI、MOV、AVI、MPEG等文件。,1属性 MMControl多媒体控件有许多属性,主要的属性如下:Devicetype属性:指定要打开的MCI设备的类型。Filename 属性:指定要播放的文件目录和文件名。Command属性:指定要执行的命令的名称。这些命令包括Open、Close、Play、Pause、Stop、Back、Step、Prev、Next、Seek、Record、Eject、Sound或Save。(详细描述请见表10-3),ButtonEnabled属性:确定控件上的按钮是否被激活。ButtonVisible属性:决定是否显示控件中的某个按钮。Length属性:给出被MCI打开的播放文件的长度。Mode属性:指定执行MCI设备的模式,如打开、暂停、播放等。Position属性:指出一个打开了的MCI设备的位置。Wait属性:决定Multimedia控件是否要等到下一条MCI命令完成后,才能将控件返回应用程序。在设计模式下该属性不可用。,2事件和方法 和VB的其他控件一样,MCI控件具有自己的事件和方法。当对控件上的任何一个有效的按钮进行点击操作时,就会产生一个Button Click事件。当按钮释放时,就会产生Button Completed事件。Statusupdate这个事件可监测目前多媒体设备的状态信息。打开“工程”菜单,在其下点击“部件”打开“部件”对话框,在控件列表中找到“Microsoft Multimedia Control 6.0”,钩选该列表项左部的复选框,最后点击“确定”按钮就可以将MCI控件添加到工具箱中了(如图10.3所示)。,多媒体控件(MMControl)实际上是由一组执行MCI命令的按钮组成。这些按钮的功能和通常的CD机或录像机的功能是相似的,可以进行常规的前进、后退、播放、暂停、快退、快进、停止、录音、弹出操作。双击工具箱中的多媒体控件图标便可以将其添加到窗口中,如图10-4所示。,图10.3 添加MCI控件部件,图10.4 窗体上的MCI控件图标,实例10.2:使用MMControl控件播放MP3音乐1.按照前述方法将MMControl控件添加到窗体上。2.在代码窗口里输入如下代码:Private Sub Form_Click()CommonDialog1.Filter=全部文件(*.*)|*.*|mp3文件|*.mp3CommonDialog1.FileName=byywdalshw.mp3CommonDialog1.InitDir=F:music音乐CommonDialog1.Action=1,MMControl1.Orientation=mciOrientHorzMMControl1.Notify=FalseMMControl1.Shareable=FalseMMControl1.Wait=TrueMMControl1.FileName=CommonDialog1.FileNameMMControl1.Command=OpenEnd Sub,实例10.3:使用MMControl控件播放AVI动画1.在窗体上添加一个CommonDialog控件、一个PictureBox控件和一个MMControl控件。其中,CommonDialog控件用来显示打开对话框;PictureBox控件用来显示播放的画面;MMControl控件用来实现播放的各种功能。2.设置PictureBox控件的AutoRedraw属性为True,设置MMControl控件的AutoEnable属性为True,在代码窗口里输入如下代码:Private Sub Form_Load()CommonDialog1.Filter=全部文件(*.*)|*.*|动画文件(.AVI)|.AVICommonDialog1.DialogTitle=请选择要打开的文件CommonDialog1.Action=1,MMControl1.Orientation=mciOrientHorzMMControl1.DeviceType=AVIVideoMMControl1.Notify=FalseMMControl1.Shareable=FalseMMControl1.Wait=TrueMMControl1.FileName=CommonDialog1.FileNameMMControl1.hWndDisplay=Picture1.hWndMMControl1.Command=openEnd Sub,工程运行后,效果如图10.5所示:,图10.5 实例10.3效果图,10.2.3 MediaPlayer控件,提供MediaPlayer控件的文件是“Msdxm.ocx”,添加该控件的方法是在“工程”菜单中选择“部件”菜单命令,在打开的“部件”对话框中点击“浏览”按钮,接着找到该文件并将其加载到常用工具箱中即可。该控件(如图10.8所示)可以播放WAV、MP3、MIDI、MOV、AVI、MPEG等多种格式的多媒体文件,还提供了一个播放面板,其内有控制播放的各种按钮和轨迹条。,图10-6 MediaPlayer控件外观,1属性MediaPlayer控件的属性和方法有许多与ActiveMovie控件的相似。常用的属性有:EnableContextMenu属性:用来设置是否可以单击鼠标右键调出控制菜单。ShowPositionControls属性:用来设置是否显示位置控制按钮。ShowStatusBar属性:用来设置是否显示信息条。AutoRewind属性:用来设置是否可以拖拽面板中的滑块,以调整播放的画面。,EnablePositionControls属性:用来设置位置控制按钮是否有效。DisplaySize属性:用来设置画面的大小。EnableTracker属性:用来设置是否可以用鼠标拖拽轨迹条中的滑块。URL属性:用来指定媒体位置,本机或者网络地址。,2方法 Duration方法:可以获得播放多媒体文件所用的时间。Play方法:开始播放。pause方法:暂停播放。stop方法:停止播放。该控件的控制菜单命令可以用来控制多媒体的播放、暂停和停止,可以调整画面的大小,可以全屏显示。其中的“选项”菜单命令可以调出MediaPlayer多媒体控件的“选项”对话框,如图10-7所示。,图10.9 MediaPlayer多媒体控件的“选项”对话框,10.3 利用API函数制作多媒体程序的方法,返回首页,API(Application Programming Interface)是Windows应用程序编程接口的简称,是一个由操作系统所支持的函数声明、参数定义和信息格式的集合,其中包含了许多的函数、例程、类型和常数定义。API函数包含在Windows系统目录下的动态链接库(DLL)文件中,主要的DLL有Windows内核库(Knernel32.dll)、Windows用户界面管理库(User32.dll)、Windows图形设备界面(GDI32.dll)、多媒体函数(Winmm.dll)等。,用户可以使用VB程序直接调用所有的Win32 API函数。在VB中,要访问API函数的话,必须在VB应用程序的模块中用Declare语句来声明要使用的API函数。声明的格式如下:Private/Public Declare Function API函数名 Lib“库名”Alias“别名”参数列表as类型,其实,VB提供了专门的工具来完成声明API函数的任务,此工具为“API文本浏览器”。因此,用户不必编写复杂的声明API函数的代码,而可以直接将保存有该代码的文本文件通过此工具调出来,并复制到VB应用程序的模块中即可。比如Win32api.txt文本文件,它包含了经常使用的许多API过程声明,可以使用“API文本浏览器”将其从VB主目录下的Winapi子目录中调出来。方法步骤如下:1.打开“工程”菜单,选择“添加模块”命令,添加一个模块。2.打开“外接程序”菜单,选择“外接程序管理器”命令,即可打开“外接程序管理器”对话框,如图10.10所示。,图10-8“外接程序管理器”对话框,3.在打开的“外接程序管理器”对话框中选中“可用外接程序”列里的“Visual Basic 6 API Viewer”选项。再单击对话框下方“加载行为”栏内的“在启动中加载”和“加载/卸载”复选框。4.单击“确定”按钮,即将“Visual Basic 6 API Viewer”程序加载到VB中了。之后,在“外接程序”菜单中会增加一个“API浏览器”菜单项。5.在“外接程序”菜单中点击“API浏览器”菜单项,就可以打开“API浏览器”对话框,如图10.11所示。,图10-9“API浏览器”对话框,加载好“Visual Basic 6 API Viewer”程序后,就可以使用其进行查看并复制文本文件或Jet数据库文件了。MciExecute()函数的功能就是执行MCI设备的命令,它只有一个参数即MCI指令字符串,当出现错误时将自动弹出对话框。使用MciExecute()函数既可以播放动画文件又可以播放声音文件。下面是对music.wav文件分别进行打开、播放、停止、关闭的控制程序:I=mciExecute(open d:music.wav&alias sound)I=mciExecute(play sound)I=mciExecute(stop sound)I=mciExecute(close sound),MciSendString()函数的功能与上面的函数相似,但它可以在传送字符串给MCI的同时接收反馈的信息给应用程序,使用时需要四个参数,第一个是MCI命令字符串,第二个是预备的文本缓冲区,第三个是文本缓冲区的长度,还有一个用来接收确认信息,在VB中可恒置为0。利用API函数播放音频文件除了可以调用MciExecute()函数和MciSendString()函数外,还可以调用MessageBeep、SndPlaySound和PlaySound函数来实现。,MessageBeep函数是标准的Win32 API函数,一般用于播放系统的报警声音。它的声明语句如下:Declare Function MessageBeep Lib“User32.dll”(ByVal wType As Long)As LongPlaySound函数主要用于播放给定的音频文件、WAV资源与系统事件对应的声音。它的声明语句如下:Declare Function PlaySound Lib“Winmm.dll”Alias“PlaySoundA”(ByVal lpszName As String,ByVal hModule As Long,ByVal dwFlags As Long)As Long,lpszName用来指定要播放的声音的字符串。hModule是装载音频资源执行文件的句柄参数。dwFlags是播放标志。SndPlaySound函数是PlaySound函数的子集,其声明语句如下:Declare Function sndPlaySound Lib“Winmm.dll”Alias“sndPlaySoundA”(ByVal lpszSoundName As String,ByVal uFlags As Long)As Long,实例10.4:使用API函数制作音频播放器 如图10.12所示,向窗体中添加一个CommonDialog通用对话框控件、两个Label标签控件、两个命令按钮控件。其中两个命令按钮Command1、Command2的Caption属性分别修改为“打开”、“停止”。在代码窗口的最顶端输入变量的定义和函数的声明,如下代码:Option ExplicitPrivate Declare Function mciExecute Lib winmm.dll(ByVal lpstrCommand As String)As LongDim MARK As Integer,RtValue As Long,加载窗体时进行初始化的代码如下:Private Sub Form_Load()MARK=0RtValue=0End Sub第一个按钮“打开”的单击事件代码如下:Private Sub Command1_Click()Dim Fname As StringIf Command1.Caption=播放 And MARK=1 ThenRtValue=mciExecute(play music),Command2.Enabled=TrueCommand1.Enabled=FalseEnd IfIf Command1.Caption=打开 ThenCommand1.Caption=播放CommonDialog1.Filter=ALL FILES(*.*)|*.*CommonDialog1.FileName=CommonDialog1.ShowOpen 弹出打开文件对话框,If CommonDialog1.FileName ThenLabel1.Caption=播放路径为:Label2.Caption=CommonDialog1.FileNameIf MARK=1 Then RtValue=mciExecute(close music)确保打开设备前它是处在关闭状态Form1.Caption=CommonDialog1.FileNameFname=CommonDialog1.FileNameFname=Fname&Alias music MARK=mciExecute(Open&Fname)成功打开返回1End IfEnd IfEnd Sub,第二个按钮“停止”的单击事件代码如下:Private Sub Command2_Click()If MARK=1 Then RtValue=mciExecute(stop music)RtValue=mciExecute(close music)MARK=0End IfCommand1.Enabled=TrueCommand1.Caption=打开Command2.Enabled=FalseEnd Sub,本章小结,程序是一种编码的艺术,多媒体编程是程序设计中最为繁杂的工作。VB为多媒体编程提供了很多方便的控件,比如Amination控件、MCI控件、ActiveMovie控件和MediaPlayer控件等。本章重点介绍了MCI控件的属性事件和方法,举了具体的示例详细介绍了其使用方法。同时也举例介绍了其他常用控件的基本使用方法。还介绍了使用Win API实现多媒体播放器的方法。通过本章的学习,要求熟练掌握常用的多媒体控件,并且能够利用它们进行一些多媒体应用程序的开发。,