基于VB5.0的多媒体设计技术
2000-09-06 11:30:16
VB5.0不仅具有强大的计算和数据处理能力,而且还提供了丰富的多媒体功能。利用这些多媒体功能我们可以设计出多种多样的多媒体应用程序。
MCI控件
MCI控件是通过多媒体控制接口对多媒体设备进行控制的。它可以播放Windows中媒体播放器所支持的所有格式的媒体文件,比如WAV、MID、AVI等等。
设计和使用MCI控件时常用到它的如下属性(见表1)。
表1
属性名称 |
何时使用 |
作用 |
使用说明 |
Visible |
设计控
件时用 |
决定工程运行时该控件是否可见 |
如果应用程序中多媒体的播放是由程序自动控制的,则应设为False。若为按键控制,则设为True。 |
DeviceType |
设计代
码时用 |
设置所要播放的多媒体文件类型 |
常见的类型有AVIVideo、CDAudio、DAT(数字录音带)、DigitalVideo、MMMovie(多媒体电影)、Overlay、FLI格式、FLC格式、扫描仪、序列发生器、VCR、视盘或
WaveAudio。 |
FileName |
设计代
码时用 |
指定要播放的多媒体文件 |
此处要给出文件名全称,即不但要给出文件名,还要给出文件所在盘符和路径。 |
Mode |
设计代
码时用 |
反映多媒体设备当前的状态 |
通过测试Mode属性的值,我们便可以了解多媒体设备当前的状态,以进行进一步的控制。 |
Command |
设计代
码时用 |
指定一个要执行的MCI命令 |
通过它来向多媒体设备发布命令。 |
使用MCI控件时要注意以下几点:
·MCI控件可以根据用户给出的多媒体文件的扩展名自动设置设备类型Mode,用户可不设置Mode属性,而让MCI控件自行确定。
·如果不对MCI控件进行绑定,MCI控件播放视频文件时,MCI控件将使用自己的窗体进行播放。由于MCI控件的播放窗体是浮动的,因此它出现在屏幕上的位置是随机的,如果此时屏幕上还有其它窗体存在,则很可能造成窗口重叠,影响显示效果。所以如果我们能把MCI控件播放的视频内容控制在预先指定的位置上,就可以避免这类事件的发生。
下面通过将MCI控件绑定到PictureBox控件进行显示为例,来介绍绑定的具体实现过程。
(1)首先应分别设计一个MCI控件和一个PictureBox控件,假设它们的名称分别为MCI2和Picture2,将MCI控件的Visible属性设为False(目的是让程序去控制播放),将PictureBox控件调整到指定位置,以便将来在此控件窗口中播放视频文件。
(2)在相应的事件代码中加入如下代码段。
MCI2.filename=″c:\user\demo.avi″(指定要播放的视频文件)
MCI2.hWndDisplay=Picture2.hWnd
(将MCI设备输出窗口的句柄送入PictureBox控件,以实现绑定)
MCI2.Command=″Open″(打开MCI设备)
MCI2.Command=″Play″(开始进行播放)
注意:
①MCI控件的hWndDisplay属性是为MCI MMMovie或Overlay设备规定显示输出窗口的。该属性是MCI设备输出窗口的句柄。如果句柄为0,则使用缺省窗口。
②hWnd属性:返回窗体或控件的窗口句柄。
一旦实现了绑定,与MCI控件相绑定的PictureBox控件的窗体就只能用于显示MCI控件播放的视频文件了。如果想在该控件上显示其它信息,就必须首先解除绑定。
前面我们介绍过,如果MCI控件的hWndDisplay属性为0,则MCI控件使用自己的窗口进行播放,这样便可解除绑定。因此用户可在需要解除绑定处安排这样一条语句:MCI2.hWndDisplay=0。绑定的解除工作应放在视频文件停止播放之后进行,否则屏幕会出现一次闪动。
一个小巧且功能完备的多媒体程序
本程序可以在指定位置播放AVI文件,播放既可连续进行,也可以向前、向后逐帧进行,还能按用户要求从指定位置开始播放,到指定位置停止播放,并且可以随时重放;用户可实时了解到媒体设备现在所处状态;如果AVI文件本身还带有声音的话,则本程序可控制是否播放声音。程序运行后的情况如图所示:
(1)所需控件
一个PictureBox控件、七个CommandButton控件、一个CheckBox控件、四个Label控件、两个TextBox控件、一个Timer控件、一个MMControl控件(MCI控件)。
(2)各控件的属性设置(见表2)。
表2
窗体及控件 |
属性 |
设置值 |
含义 |
MMControl控件 |
Visible |
False |
将控件隐藏起来,由程序去控制播放。 |
Timer控件 |
Interval |
200 |
设置每隔0.2秒发生一次Timer1_timer()事件,当然此项设置也可在事件代码中用语句Timer1.Interval=200来设定。 |
Label1控件 |
Caption |
从此帧开始: |
提示字符串 |
Label2控件 |
Caption |
到此帧结束: |
提示字符串 |
ChechBox控件 |
Caption |
静音 |
提示字符串 |
Font |
宋体、12号字 |
设置显示的字体及字的大小。 |
摘自《赛迪网》 张杰、关永/文
|
404 Not Found
404 Not Found
nginx
|
|