您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 广告经营 > 多媒体应用程序设计-211678135
第16章多媒体应用程序设计VisualBasicforWindows(以下简称VB)是Microsoft公司推出的基于Windows平台的程序开发工具,它从根本上改变了传统的程序设计模式,大大简化了Windows应用程序设计,利用VB,我们可以通过编程来处理文本、图像、动画、声音等多媒体数据,以设计或构造适合不同需求的多媒体应用系统。•16.1VisualBasic概述VB曾被誉为“最富有创新精神的编程工具之一”。VB的程序设计风格与传统设计方法不同,它是面向对象和事件的程序设计方法。面向对象是近年来出现的程序设计技术,它是一种全新设计和构造软件的思维的方法。在面向对象的程序设计中,”对象”是系统中的基本运行实体。例如窗体和控件,就是VB的对象,VB中的对象是由系统设计好提供给用户使用的,对象建立、移动、增删、缩放操作也是由系统规定好的,这比一般的面向对象程序设计中的操作要简单的多。VB是采用事件驱动编写机制的语言。传统编程使用的是面向过程,按顺序进行的机制,这种编程方式的缺点是写程序的人总是要关心什么时候发生什么事情。而在事件驱动编程中,程序员只要编写响应用户动作的程序,如选择命令、移动鼠标等,而不必考虑按精确次序执行的每个步骤。当事件由用户触发、或由系统触发,对象就会对该事件作出响应。选用VB作为多媒体应用系统的编程工具,主要是VB专业版中提供了MCI的控制对象。设计多媒体软件,关键是对多种媒体设备的控制和使用,在Windows系统中,对多媒体设备进行控制主要有三种方法:第一种方法是使用微软公司窗口系统中对多媒体支持的MCI(MediaControlInterface),即媒体控制接口,MCI是多媒体设备和多媒体应用软件之间进行设备无关的沟通的桥梁。通过VB提供的MCI控件,就可以在VB中使用MCI指令控制各种多媒体外部设备并读取各种多媒体系统所需的文件格式。第二种方式,可以通过调用Windows的API(ApplicationProgrammingInterface,应用程序接口)多媒体相关函数实现媒体控制。第三种方法是使用OLE(ObjectLinking&Embedding),即对象链接与嵌入技术,它为不同软件之间共享数据和资源提供了有力的手段。目前,OLE技术得到了广泛的关注,OLE2.0标准得到越来越多的软件开发商支持。•16.2媒体控制接口MCI(媒体控制接口)是微软Windows定义的多媒体接口标准,MCI接口,包括了CDAudio(激光唱机)、Scanner(图像扫描仪)、VCR(磁带录像机)、Videodisc(激光视盘机)、DAT(数字化磁带音频播放机)、DigitalVideo(窗口中的数字视频)、MMMovie(多媒体影片演播器)、Sequencer(MICI音序设备)、WaveAudio(波形音频设备)等多媒体的主要产品,支持环境是Windows9x版本。MCI的最大优点是应用系统与设备无关性,对于标准多媒体设备安装相应的Windows的MCIDriver,Windows即可对该设备进行操作访问;对于非标准的多媒体设备,只要有厂家提供所配的MCIDriver也可以一样操作。由于MCI与设备的无关性,程序员在多媒体的应用系统的开发中,无需了解每种产品细节,就能开发出通用的多媒体应用系统。应用程序通过指定一个MCI设备的类型来区分不同的多媒体设备,设备类型指明了设备的物理类型。表16-1列出了可能用到的MCI设备类型。设备类型设备描述CDAudio激光唱盘播放设备DAT数据化磁带音频播放机DigitalVideo动态数字视频图像设备Animation动画播放设备Other未给出标准定义的MCI设备Overlay模拟视频图像叠加设备SequencerMIDI音序发生器VCR可以使用程序控制的磁带录象机VideoDisc可以使用程序控制的激光视盘机WaveAudio播放数字化波形音频的设备MCI命令总共分为四大类:系统命令(SystemCommands):直接由MCI解释此类命令,然后去执行。请求命令(RequiredCommands):此类命令可取得多媒体设备的相关信息或令其设备的开启、关闭等。基本命令(BasicCommands):对多媒体设备除、开启关闭之外的媒体控制功能。扩展命令(ExtendedCommands):扩展包含两个方面,一是特殊多媒体设备类型的扩展,其二是请求命令和基本命令的扩展。要使用MCI指令,首先要熟悉MCI命令的字符串的格式组成MCI指令字符串可以分成command、device_name和arguments三个部分。其语法的排列如下:commanddevice_namearguments其中:command:表示所使用的MCI指令,如play、open、record、save等。device_name:指出所使用的设备类型、文件名称或是别名。设备名定义见表17-3。arguments:参数,并不是每一个MCI命令都必须使用到,应视需求而定。例如使用Play命令就要用到from及to这两个参数来表示起始及结束的位置。如播放CD光盘上第1首到第5首曲目,其命令格式为:playcdaduiofrom1to5•16.3使用MCI多媒体控制对象16.3.1MCI的安装MCI.VBX是在VB专业版中所提供的一个控制对象。MCI.VBX的作用是VB借助于此控件的配合来达到控制多媒体设备的目的,可以说是最简单、最方便、最容易使用户进入多媒体世界的一种控制方法。一般在安装完VB专业版时,会将这个控制对象拷贝到Windows下的System子目录里。在使用MCI之前,应首先安装并设置好MCI控件。VB3.0中MCI的安装。MCI控制在VB不同版本中的安装方法是不一样的。在VB3.0专业版中,MCI控制文件为MCI.VBX,一般情况下MCI控制在启动VB之后并没有加入到工具箱中(ToolBox),需要自己动手安装它。当我们进入VB时,ToolBox(工具箱)中并不会直接出现MCI.VBX的图标。这是因为Autoload.mak这个“自动载入”文件没有将其包含进来。在VB的目录中找到这个文件,然后用Windows的书写器进行编辑,将“MCI.VBX”加在Autoload.mak文件的未尾。也可以选择[File]菜单下的[AddFile]选项,将Windows\System子目录下的MCI.VBX加进ToolBox后,才能在VB中控制多媒体外部设备。将MCI.VBX加入到ToolBox之后,就可以看到ToolBox尾部已经增加了一个图标。VB4.0以上版本中MCI的安装VB4.0支持16位和32位两种系统,在VB4.0中MCI控制文件为MCI16.OCX(16位)、MCI32.OCX(32位)。MCI不能和VB3.0中一样用AddFile调入,需在Autoload.mak文件中调入。16.3.2MIC控件的控制按钮如同使用其它控制对象一样,以鼠标双击ToolBox(工具盒)的MCI控件或拖至Form(窗体)上,并调整好Form的大小,这时我们可以看到,在窗体上(Form)出现了九个按钮,这就是MCI媒体控制对象的外观MCI控制按钮定义如下:Prev(移前标)、Next(移后标)、Play(播放)、Pause(暂停)、Back(倒移)、Step(前移)、Stop(停播)、Record(录制)和Ejec(退出);每个控制按钮都可以是可见或隐藏的,功能也通过例如Click(单击鼠标)事件激活。使用MCI控件方法如下。MCI控件在设计或运行时可以是可见或隐藏的;其按钮功能也可以通过其Click事件重新定义;MCI按钮功能需要使用时,必须设计Visible和Enabled特性为True;否则,不需要该按钮时,必须设计Visible为False;该按钮功能当前无效时,设计Visible为True和Enabled为False;MCI扩充版支持一个视窗控制多个MCI设备。16.3.3用MCI编制一个简单的程序在MCI控件支持下,我们对多媒体设备的控制过程简单的难以使人置信,下面我们先创建一个CD音乐播放程序来体验一下:在Form_Load()事件过程中加上下面两行代码:MMControl1.DeviceType=“CDAudio”MMControl1.Command=“Oper”另外,我们在Form_unload事件过程中,加上一行代码:MMControl1.Command=“Close”在以上代码中,MMControl1是系统内定的媒体控制对象的名称,可以自行更改。MMControl1.DeviceType=“CDAudio”的作用是指定多媒体设备的类型,因为我们要播放CD唱盘,所以指定设备类型为”CDAudio”。MMControl1.Command=“Oper”指令表示打开指定的设备,而MMControl1.Command=“Close”表示关闭一个已打开的设备。运行这段程序,播放按钮变成了黑色。将CD唱盘放入CD-ROM中,只要按下[Play]按纽,就立刻可以听到美妙的音乐在你设计的播放器控制下播放出来(图16-3)。你可以更换一下波形文件名或者将DeviceType变为“WaveAudio”(音频音乐)、“AviVideo”(.AVI动画)、“Sequencer”(.MID音乐),就会有一种无所不能的感觉。在我们尝试了媒体控制对象的功能后,虽然觉得非常简单实用,但还是感到的缺少些什么。例如播放器面板上有些按纽无法使用,也不能显示目前播放的曲目信息。事实上,媒体控制对象提供了一些可以监测设备的状态并反馈的属性,要达到这些需求,虽然并不包括所有MCI所提供的功能,但能提高程序的实用性。16.3.4MCI控件的属性与事件为了进一步掌握MCI编程,下面我们将MCI控件所具有的属性和事件作一简表(见表16-2和表16-3),并通过一个例子来介绍有关的使用方法。表16-2MCI的属性AutoEnableButtonVisibleCanEjectCanRecordCanStepCommandDeviceIDDeviceTypeErrorErrorMessageFileNameFramesLengthModeMousePointNotify自动制能显示按纽能否退出媒体能否记录能否前进一格画面MCI命令多媒体设备代码多媒体设备类型错误错误信息文件名画面媒体长度目前所处状态鼠标指针形状确认NotifyMessageNotifyValueOrientationPositotionRecordModeShareableSilentStartTimeFormatToTrackTrackLengthTracksVisibleWait确认信息确认设定值定位位置记录模式能否共享静音启始位置时间格式结束位置磁道磁道长度磁道总数能否显示等待表16-3媒体控制对象的所有事件16.3.5使用MCI设计CD播放机在前面,我们已经设计了一个最简单的CD播放机,但功能太简单。利用MCI控制对象,我们可以轻松地编制出符合自己使用要求的激光唱盘播放机。这个CD播放机不但具有控制播放的按键,而且还可以显示播放曲目。在表16-4中给出了各个控制对象定义,最后是对应于各个事件的程序代码。Done完成MCI命令动作BottonClick单击按纽ButtonCompleted按纽动作完成ButtonGotFocus按纽取得焦点ButtonLostFocus按纽失去焦点StatusUpdate更新媒体控制对象的状态报告表16-4各控制对象的属性设定对象属性设定值FormNameForm1CaptionCD播放机CommandButtonNameCommand1Caption退出MMControlNameMMControl1LabelNameLabel1LabelNameLabel2完整的源程序清单如下:SubForm_Load()‘不需要确认打开动作MMControl1.Notify=False’打开设备完成后才返
本文标题:多媒体应用程序设计-211678135
链接地址:https://www.777doc.com/doc-1473695 .html