其次,在Form_Load过程中,插入相应程序代码。
如下
SubForm_Load(>
‘在发出OPEN命令前要设置多媒体设备的属性
Form1.MMControl1.Notify=False
Form1.MMControl1.Wait=True
Form1.MMControl1.Shareable=False
Form1.MMControl1.DeviceType="WaveAudio"
Form1.MMControl1.FileName="c:
windowss
Mmdatademo.wav"
Form1.MMControl1.Command="Open"
EndSub
最后,运行上述程序,控制键呈黑色,这时就可以使用Play、Record等键操作数据文件DEMO.WAV了。
例如用鼠标点按Play键就能听到.WAV音效<计算机应装有发音设备)。
通过上面陈述,不难发现,VisualBasic利用多媒体控件MCI.OCX设贫嗝教逵τ贸?
序很容易掌握。
五、VisualBasic多媒体应用程序设计实例
1、播放CD音乐
在很多多媒体软件系统中,都提供了激光唱盘的播放软件,利用多媒体控件MCI.OCX,我们可以轻松地编制出符合自己使用要求的简易激光唱盘播放机。
表1给出了简易CD播放器的主要控制部件定义,其后是对应于各个触发事件的源程序代码。
完整的源程序清单如下:
`CD播放机实用程序
`运行程序前请在CD-ROM驱动器中装入一张激光唱碟’“LOAD”按钮触发事件
PrivateSubCommand1_Click(>
`装入CD唱片
OnErrorGoToMCI_ERROR
MMControl1.Command="Open"
OnErrorGoTo0
`设置时间格式
MMControl1.TimeFormat=vbMCIFormatTmsf
`关闭LOAD按钮,显示图片
Command1.Enabled=False
Picture1.Picture=Picture3.Picture
`设置初始轨道数
Label1.Caption="1"
ExitSub
MCI_ERROR:
DisplayErrorMessageBox
ResumeMCI_EXIT
MCI_EXIT:
UnloadCD
EndSub
PrivateSubForm_Load(>
MMControl1.Wait=True
MMControl1.UpdateInterval=0
`设置设备类型
MMControl1.DeviceType="CDAudio"
`设置缺省轨道数为0
Label1.Caption="0"
ndSub
PrivateSubForm_Unload(CancelAsInteger>
MCITest.Show
EndSub
’“出带”按钮触发事件
PrivateSubMMControl1_EjectClick(CancelAsInteger>
Command1.Enabled=True
Picture1.Picture=Picture2.Picture
MMControl1.UpdateInterval=0
OnErrorGoToMCI_ERROR2
MMControl1.Command="Eject"
MMControl1.Command="Close"
OnErrorGoTo0
Label1.Caption="0"
Label3.BackColor=&H404040
ExitSub
MCI_ERROR2:
DisplayErrorMessageBox
ResumeNext
EndSub
’“向前”按钮触发事件
PrivateSubMMControl1_NextCompleted(ErrorCodeAsLong>
Label1.Caption=Str$(MMControl1.Track>
EndSub
’“暂停”按钮触发事件
PrivateSubMMControl1_PauseClick(CancelAsInteger>
MMControl1.UpdateInterval=0
Label3.BackColor=&H404040
EndSub
’“播放”按钮触发事件
PrivateSubMMControl1_PlayClick(CancelAsInteger>
MMControl1.UpdateInterval=1000
Label1.Caption=Str$(MMControl1.Track>
EndSub
’“向后”按钮触发事件
PrivateSubMMControl1_PrevCompleted(ErrorCodeAsLong>
Label1.Caption=Str$(MMControl1.Track>
EndSub
PrivateSubMMControl1_StatusUpdate(>
Label1.Caption=Str$(MMControl1.PositionAnd&HFF>
IfMMControl1.Mode=vbMCIModePlayThen
Label3.BackColor=&H80FF&
Else
Label3.BackColor=&H404040
EndIf
EndSub
’“停止”按钮触发事件
PrivateSubMMControl1_StopClick(CancelAsInteger>
MMControl1.UpdateInterval=0
Label3.BackColor=&H404040
MMControl1.To=MMControl1.Start
MMControl1.Command="Seek"
MMControl1.Track=1
Label1.Caption="1"
EndSub
2、播放AVI<音频视频接口)文件
电影<包括声音和图像)是广大计算机工作者最为关心的媒体信息之一,电影处理技术也是多媒体关键技术之一。
而在多媒体系统中,AVI于是,屏幕窗口上的音频视频操作,就变成了对AVI文件<文件后缀为AVI)的处理。
在实际工作中,播放AVI文件<即影片)的方法有许多种,而其中以利用VisualBasic的多媒体控件方法最为简单、方便。
下面以一个具体实例来说明如何播放AVI文件:
假设用户当前目录下有名字为DEMO.AVI的视频音频文件,则利用VisulBasic播放该影片需要经过如下步骤:
<1)在VisualBasic的窗体中加入一个MMControl多媒体控件、一个PictureBox图片框控件和两个ComandButton命令按钮部件;
<2)设置各个控件的属性,其中窗体命名为Form1,MMControl多媒体控件命名为MMControl1、PictureBox图片框控件命名为Picture1、两个ComandButton命令按钮控件分别命名为Play和Close;
<3)编写各触发事件源程序代码并且运行。
源程序代码为:
PrivateSubPlay_Click(>
MMControl1.Filename="DEMO.AVI"
MMControl1.DeviceType=="AVIVIDEO"
MMControl1.hWndDisplay=Picture1.hWnd
MMControl1.Command="OPEN"
MMControl1.To=1
MMControl1.Command="SEEK"
MMControl1.Command="PLAY"
EndSub
PrivateSubClose_Click(>
MMControl1.Command="STOP"
MMControl1.Command="CLOSE"
EndSub
值得注意的是:
在播放AVI文件之前,首先应该把AVI<音频视频)驱动程序安装在Windows下。
AVI的驱动程序名为MCIAVI.DRV,必须将它拷贝到WINDOWSSYSTEM目录下,同时在SYSTEM.INI文件的[MCI]部分加上:
AVIVIDEO=MCIAVI.DRV
这样,运行Windows时,Windows会自动地将AVI的驱动程序安装好。
以上仅描述了利用多媒体控制部件播放音频文件<.WAV)、CD唱片和音频视频文件<.AVI)的操作过程。
实际上利用多媒体控制部件同样可以播放动画文件<.FLI、.FLC)、MIDI文件等其他媒体信息。
六、结束语
通过前面论述,不难看出:
利用VisualBasic提供的多媒体控制部件MCI.OCX,广大计算机用户可以方便、快捷、高效率地开发出各种多媒体应用程序。
但需要强调的是:
开发设计VisualBasic多媒体应用程序,除了可以利用多媒体控制部件以外,还可以采用其他手段,例如通过调用API函数等等<鉴于篇幅,这里未做讨论)。
可见,VisualBasic确实是专业与非专业多媒体软件开发人员共同拥有的理想开发工具。
附表1MCI设备类型定义
设备类型 设备描述
CDAudio 激光唱盘播放设备
DAT 数字化磁带音频播放机
DigitalVideo动态数字视频图像设备
Animation 动画播放设备
Other 未给出标准定义的MCI设备
Overlay 模拟视频图像叠加设备
Sequence MIDI音序发生器
VCR 可以使用程序控制的磁盘录像机
VideoDisc 可以使用程序控制的激光视盘机
WaveAudio 播放数字化波形音频的设备?
?
?
附表2多媒体控制部件特有事件列表
事件 说明
Done 完成MCI命令动作ButtonClick 单击按钮
ButtonCompleted按钮执行命令完成
ButtonGetFocus 按钮获得输入焦点
ButtonLostFocus按钮失去输入焦点
StatusUpdate 更新媒体控制对象的状态信息