计算机的多媒体技术已经广泛普及,相应的在计算机编程领域中又多出了一个多媒体控制技术,对于一般的用户来说,采用可视化编程工具是最好的选择,VB就是其中一个典型的代表。在VB中一般有三种方法可以对多媒体对象进行控制,其方法各具特色,下面简单介绍VB多媒本几种控制方法的具体过程。
—-一、OLE控制方法
—-VB是一个优秀的可视编程工具,全面支持对象的链接与嵌入OLE,利用此技术可以方便的把声音、图片、文本或动态图像嵌入WINDOWS程序中,以实现多媒体控制功能。OLE的具体操作过程如下:启动VB4.0后,在窗口中安放一个OLE控件,之后弹出窗口列出了全部可链接或嵌入的对象内容,此时可选择”新建”或”由文件创建”,如果只想把现成的文件内容如声音文件、BMP图像文件等作为对象,可选择”由文件创建”项,此时可通过”浏览”找到指定的文件,还有一个重要的选项,就是”链接”项,选择此项有效,则指定的文件只建立与程序进行链接,否则是把该文件的副本嵌入程序之中;如果你想自己录制声音或绘制图片,则可选择”新建”项,在列表中选定指定的链接或嵌入对象,之后系统会自动打开相应的编辑工具,进入编辑状态。在所列出的对象中,多媒体占有很多项,如声音、MIDI音乐、等,还有一个综合性质的“媒体剪切”,通过此项可完成所有多媒体对象的操作,包括CD唱盘及MPEG对象等。选定对象之后,如果你想更换链接或嵌入的对象,则可用鼠标右键单击OLE对象,在弹出的菜单中选择”Insertobject”项,会重新进入对象选择窗口。之后的任务就是利用程序代码来控制OLE对象,通用的指令是:
OLE1.Verb=0;代表直接播放
OLE1.Action=7;代表直接驱动OLE
如果改为如下指令:
OLE1.Verb=-1;代表进入编辑状态
OLE1.Action=7
—-则启动OLE1时会调出相应的工具软件进行播放并允许进行编辑;用此方法控制多媒体最显著的优点就是,操作非常简单,缺点是运行时需要频繁的磁盘交换过程,运行速度较慢。
—-二、MCI(MMControl)控制方法
—-MMControl是一个专用的多媒体控件,在VB缺省状态的部件箱中并没有此项,必须进行手工填加,在VB5.0中可通过”工程”菜单中的”部件”项打开选择窗口,并选中“MICROSOFTMULTIMEDIACONTROL”项,之后在部件箱中即可出现“MMCONTROL”图标,用此控件控制多媒体的基本步骤是指定媒体对象、打开媒体对象、控制媒体对象等,比如编制CD唱盘的播放程序,可用鼠标点亮此MCI图标,并在FROM1窗体中绘制一个长方形的区域,此时一组功能齐全的播放按钮出现在窗口中,然后双击窗体空白处,打开From1的代码窗口,此时输入以下命令:
MMcontrol1.DeviceType=”CDAudio”
MMcontrol1.command=”OPEN”
—-运行程序之后,窗口中的有关按钮变成深色,说明已经能够正常使用,按下PLAY键,美妙的音乐就会随之送出;使用此方法控制多媒体,首先要了解系统中的媒体设备种类和具体的设备名称,具体可通过WINDOWS目录中的SYSTEM.INI文件中得到,其[MCI]小节等号前面即为各种多媒体驱动程序类型,可直接用MMcontrol1.DeviceType命令打开,如果涉及多媒体文件还必须指明具体的文件名,比如指定一个WAV文件:
MMcontrol1.DEVICETYPE=”WaveAudio”
MMcontrol1.FILENAME=”C:\WINDOWS\MEDEL.WAV”
—-一般只要使用OPEN命令打开媒体对象后,MCI控件所提供的组合按钮就会发挥作用,此时可以利用这些按钮进行各种播放控制,此外,还可以利用MCI所提供的特殊属性进行更加灵活的控制,具体使用方法请参考有关资料;此方法是进行多媒体程序设计的最常用的方法,它具有较简单的操作特点,而又可以进行较细致的操作控制和较高的运行速度,适合于大部分场合的多媒体程序设计。
—-三、API函数控制方法
—-在VB中要实现更复杂的控制则必须依靠WINDOWS的API函数,高级的多媒体程序设计同样也离不开WINDOWSAPI函数的参与,调用API函数之前必须对所要用的函数进行说明,可通过”APITEXTVIEWER”程序直接拷贝。在多媒体程序设计中常用的API函数如下:
—-mciExecute():这是一个最简单的函数,只有一个参数即MCI指令字符串,当出现错误时将自动弹出对话框;
—-mciSendString():功能上与上面的函数相同,但它可以传送相应的信息给应用程序,使用时需要四个参数,第一个是MCI命令字符串,第二个是缓冲区,第三个是缓冲区长度,第四个在VB中可恒置为0;
—-mciGetErrorString():说明上一个命令所传回的错误代码所表示的意义;
—-Parse():处理所传送回来的文字信息,一般可通过VB的instr函数配合搜索指定的字符串;
—-下面的代码对TEST.WAV文件分别进行打开、播放、停止、关闭等控制:
I=mciExecute(“open”test.wav”aliassound”)
I=mciExecute(“playsound”)
I=mciExecute(“stopsound”)
I=mciExecute(“closesound”)
—-还存在一个专用的多媒体控制函数,就是SndPlaySound(),此函数是一个可独立播放WAV语音文件的函数,使用相对来说较为简单,下面的例子可直接播放TEST.WAV文件:
I=SndPlaySound(“test.wav”,1)
—-在实际应用中,还涉及很多具体的编程细节,比如播放进度的显示、播放进度的改变、视频播放的窗口控制、播放界面的设计等等,由于API函数具有VB本身所不具有的优越性,所以用此方法可编制出具有高水准的多媒体控制程序及专业程序。
—-四、MCIWnd控件方法
—-在VB5.0中还存在一个MCIWnd控件,此控件也可实现多媒体的简单控制,使用很方便,具体方法,通过”工程”菜单的”部件”项打开选择窗口,选中其中的”MCIWndXControl”项,之后在部件箱中即出现一个电影胶片式的图标,在窗体中安放此控件,之后可通过属性窗口指定媒体对象,也可用程序代码实现,比如在下面的事件中输入如下代码:
PrivateSubForm_Load()
MCIWnd1.filename=”d:\mpg\98.mpg”
MCIWnd1.Command=”open”
MCIWnd1.Command=”play”
EndSub
—-程序运行之后即可直接播放98.MPG文件,如果省略其中的”PLAY”命令,则运行之后不播放但可通过下面的控制按钮进行播放,并且可通过进度条调整进度,此控件还有一些常用属性可用,比如:
Volume:控制声音输出的音量;
AutosizeWindow:是否自动调整窗口大小;
AutosizeMovie:是否自动调整播放图像的大小;
repeat:是否重绕;
playbar:是否显示控制条;
—-此方法具有操作简单、运行速度快的特点,但其控制手段太少,不适合编制专用的多媒体播放程序,但对于一些要求不高的场合,比如在程序嵌入活动图像等非常适合。
—-五、ActiveMovie控件方法
—-ActiveMovie是微软公司开发的活动图像播放程序,如果系统中正确安装了此程序,则即提供ActiveMovie控件,使用前也必须通过”部件”选择窗口选定此控件,此控件的使用更为简单,只要在窗体中安放一个此控件,然后通过属性窗口或程序代码指定一个移动图像文件,比如:
PrivateSubForm_Load()
ActiveMovie1.filename=”d:\mpg\98.mpg”
EndSub
—-运行程序之后即可通过其控制条进行播放控制,其使用方法就和使用其原来的ActiveMovie一样,如果想使其运行之后自动播放,则需要使用置其ActiveMovie1.AutoStart属性为”True”,但此属性只能在窗口中进行调整,不能用程序代码进行控制,此外还有下面的一些常用属性:
Showcontrols:是否显示控制条;
showdisplay:是否出现显示窗口;
ShowpositionControls:是否显示向前或向后按钮;
ShowTracker:是否显示进度条;
Showselectioncontrols:是否显示记录设置按钮;
FullscreenMode:是否进入满屏模式;
moviewindowsize:是否调整播放窗口的尺寸;
—-此控件由于是微软公司自行开发的,并且已经内嵌在WINDOWS95的OSR版本及WWINDOWS98测试版中,其性能是相当稳定和可靠的,能够对WINDOWS95及其32位的光盘驱动器最大限度兼容,具有很多优势,但其它控制功能的灵活性稍差一些,一般只允许对单个文件进行播放,应用在简单的程序设计场合比较合适。
->