VFP探讨之OLE控件(三):多媒体控制器(上)
多媒体控制器的控件名称是Microsoft Multimedia Control,对应的文件是:mci32.ocx,通常位于Windows主目录下的System32文件夹中。它的属性调用语法与FoxPro标准控件相同:对象名.属性名。它的主要属性如下:
Command:设置控件的动作,属性值为字符型。主要的值有:Open-->打开一个设备(该值很重要,任何设备的播放都需要先打开);Close-->关闭一个设备;Play-->播放一个多媒体文件;Pause-->暂停(继续播放时从中断处开始);Stop-->停止播放(继续播放时从头开始);Prev-->定位到当前曲目或上一曲目(需要在3秒内第2次执行该命令)的开头;Next-->定位到下一曲目的开头(如果已是最后一个曲目,则定位到当前曲目的开头);Seek-->寻找曲目中播放的位置;Eject-->弹出设备(通常用于弹出CD驱动器的托盘);
DeviceType:设置控件对应的多媒体类型,属性值为字符型。主要的值有:cdaudio-->CD播放器;mpegvideo-->VCD播放器;Sequencer-->MID播放器(播放.mid音频文件);AVIVideo-->AVI播放器(播放.avi视频文件,没有声音输出);Waveaudio-->波形文件播放器(播放.wav音频文件);
FileName:设置要播放的文件名,属性值为字符型。该属性非常重要,先要设定完文件名,才能执行Command=”Open”进行打开。如果播放CD,且从第一个曲目开始,可以将该属性设置为:FileName=”Track01.cda”。然后播放器会自动从头到尾播放所有曲目;
Length:返回一个媒体文件的长度,属性值为数值型;
Mode:返回媒体的状态,属性值为数值型。设计时不可用,运行时只读。主要的值有:524-->没有打开(还没有执行Command=”open”);525-->停止(执行了Command=”stop”);526-->正在播放(执行了Command=”play”);529-->暂停(执行了Command=”pause”);530-->设备已准备好(执行了Command=”open”);
Position:返回媒体当前播放到的位置,属性值为数值型。设计时不可用,运行时只读;
To:设置媒体播放点要到达的地方,属性值为数值型;
UpdateInterval:设置两次StatusUpdate事件之间的毫秒数,也即,间隔多少时间周期执行一次StatusUpdate事件,属性值为数值型。该属性类似于FoxPro标准控件Timer的Interval属性。
多媒体控件的主要事件就是一个StatusUpdate事件,该事件类似于FoxPro标准控件Timer的Timer事件。
一般,该控件不在表单中显示出来,只是用来播放多媒体文件,各类开关都用FoxPro标准控件CommandButton来代替(会在“多媒体控制器(中)”讲到)。
举个简单的关于背景音乐的例子:要求表单打开就有背景音乐播放,设置一个开关,点击可以关闭或打开背景音乐。
Form1.Init事件:
CLEAR MEMORY
SET TALK OFF
SET COMPATIBLE OFF
WITH This
.AutoCenter= .T.
.BorderStyle= 2
.Icon="Image\Ringtones.ico"
.MaxButton= .F.
.MinButton= .F.
.Caption="背景音乐"
WITH .开关
.BackStyle=0
.Caption="背景音乐开"
.FontSize=10
.Value=.T.
ENDWITH
WITH .播放器
.Visible=.F.
.Parent.开关.Click
ENDWITH
ENDWITH
开关.Click:
IF This.Value THEN &&如果值为真,则播放背景音乐
WITH ThisForm.播放器
.FileName="Music\Sound Of Silence(钢琴曲).wav"
.Command="open"
.Command="play"
ENDWITH
ELSE
ThisForm.播放器.Command="close"
ENDIF
关闭背景音乐的播放直接用Command=”close”就行了,因为“close”兼有“stop”的功能。
上传的附件中拿掉了音乐文件,因为实在太大了。有兴趣的可以自己修改一下复选框Click事件中的音乐文件名来播放试听。
背景音乐.rar
(107.73 KB)
[ 本帖最后由 taifu945 于 2014-4-8 14:17 编辑 ]