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