打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
MMControl控件
认识MMControl控件
MMControl控件包含一组高层次的独立于设备的命令,通过这些命令可以控制音频和视频等外围设备,包括CD、VCD、WAV、MIDI、AVI等。
MMControl控件属于ActiveX控件,使用前应首先将其添加到工具箱中。选择“工程”/“部件”命令,打开“部件”对话框,选择Microsoft Multimedia Control 6.0 SP3),单击“确定”按钮将其添加到工具箱中,在工具箱中双击 图标,即可将其添加到窗体上,添加过程如图1所示。
图1  MMControl控件添加过程
从上图可以看出,窗体上的MMControl控件,由多个按钮组成,这些按钮从左到右依次是:起始点、终止点、播放、暂停、后退、前进、停止、录制和弹出。它们的功能是管理MCI设备和播放音频或视频文件。
MMControl控件的属性
1.Command属性
用于指定将要执行的MCI命令,以控制播放、存储多媒体文件谇,这些命令及功能如表1所示。
表1                              MCI命令
命令
功能
Open
打开MCI设备
Close
关闭MCI设备
Play
用MCI设备进行播放
Pause
暂停播放或录制
Stop
停止MCI设备
Back
向后步进可用的曲目
Step
向前步进可用的曲目
Prev
使用Seek命令跳到当前曲目的起始位置。若在前一Prev命令执行后3s内再次执行,则跳到前一曲目的起始位置;若已在第一个曲目,则跳到第一个曲目的起始位置
Next
使用Seek命令跳到下一个曲目的起始位置。若已在最后一个曲目,则跳到最后一个曲目的起始位置
Seek
向前或向后查找曲目
Record
录制MCI设备的输入
Eject
从CD驱动器中弹出音频CD
Save
保存打开的文件
实际编程中,常用命令为open、play和close。例如:
打开一个多媒体文件:
MMControl1.FileName = "filename"
MMControl1.Command = "open"
上述代码中的filename是指定要打开的文件多媒体文件名及路径,如果需要自动识别该路径,可将多媒体文件放在工程所在的文件夹,然后使用App.Path。
播放多媒体文件:
MMControl1.Command = "Open"
关闭多媒体文件:
MMControl1.Command = "Close"
例  窗体加载时,播放背景音乐,窗体卸载时,关闭背景音乐,代码如下。
Private Sub Form_Load()
'播放背景音乐
With MMControl1
.Visible=False                                                      '设置MMControl1控件不可见
.FileName = App.Path & "\back\mr.wav"               '指定声音文件
.Command = "Open"                                            '打开多媒体文件
.Command = "play"                                              '播放多媒体文件
End With
End Sub
Private Sub Form_Unload (Cancel as Integer)
Form1.MMControl1.Command = "Close"                    '关闭多媒体文件
End Sub
2.DeviceType属性
指定要打开的MCI设备的类型,这些类型及说明如表2所示。
表2                     DeviceType属性设置值
设备类型
设置值
文件类型
说明
CD audio
cdaudio
-
音频CD播放器
Digital Audio Tape
dat
-
数字音频磁带播放器
Digital video(not GDI-based)
DigitalVideo
-
窗口中的数字视频
Other
Other
-
未定义MCI设备
Overlay
Overlay
-
覆盖设备
Scanner
Scanner
-
图像扫描仪
Sequencer
Sequencer
.mid
音响设备数字接口(MIDI)序列发生器
Vcr
VCR
-
视频磁带录放器
AVI
AVIVideo
.avi
视频文件
VCD
mpegVideo
.dat
视频文件
videodisc
Videodisc
-
视频播放器
waveaudio
Waveaudio
.wav
播放数字波形文件的音频设备
DeviceType属性一般可以不设置,但是以下两种情况必须设置。
(1)播放CD、VCD时,必须指定设备类型。
(2)如果文件的扩展名没有指定将要使用的设备类型,那么打开复杂MCI设备时也必须指定设备类型。
3.TimeFormat属性
用来指定所有位置信息所使用的时间格式,其设置值为0~10,如表3所示。
表3                 TimeFormat属性的设置值
常量
说明
0
mciFormatMilliseconds
毫秒数用四字节整数变量保存
1
mciFormatHms
小时数、分钟数和秒数被压缩到一个四字节整数中。从最低有效字节到最高有效字节,这四个数分别是:小时数(最低有效字节)/分钟数/秒数/未使用(最高有效字节)
2
mciFormatMsf
分钟数、秒数和帧被压缩到一个四位的整数中。从最低有效字节到最高有效字节,这四个数分别是:分钟数(最低有效字节)/秒数/帧/未使用(最高有效字节)
3
mciFormatFrames
帧用四字节的整数变量保存
4
mciFormatSmpte24
24-帧SMPTE将以下数值压缩到一个四字节的整数中。从最低有效字节到最高有效字节,这四个数分别是:小时数(最低有效字节)/分钟数/秒数/帧(最高有效字节)SMPTE(动画和电视工程师协会)时间是一种绝对的时间格式,它按小时数、分钟数、秒数和帧的格式显示。标准的SMPTE的分度类型有24、25和30帧每秒
5
mciFormatSmpte25
25-帧SMPTE按照与24-帧SMPTE相同的顺序将数据压缩到一个四字节变量中
6
mciFormatSmpte30
30-帧SMPTE按照与24-帧SMPTE相同的顺序将数据压缩到一个四字节变量中
7
mciFormatSmpte30Drop
30-放下-帧SMPTE按照与24-帧SMPTE相同的顺序将数据压缩到一个四字节变量中
8
mciFormatBytes
字节数用四字节整数变量保存
9
mciFormatSamples
示例用四字节整数变量保存
10
mciFormatTmsf
曲目、分钟数、秒数和帧被压缩到一个四字节整数中。从最低有效字节到最高有效字节,它们分别是:曲目(最低有效字节)/分钟数/秒数/帧(最高有效字节)
3.From属性
指定开始播放文件或录制文件的开始时间。
4.To属性
与From属性对应,指定播放文件或录制文件的结束时间。
5.Position属性
该属性用于返回正在播放的多媒体文件的位置,时间单位由TimeFormat属性决定。
6.Length属性
用于规定打开的MCI设备上多媒体文件的总体播放长度,时间单位由TimeFormat属性决定。
7.Start属性
该属性指定当前正在播放的多媒体文件的起始位置,时间单位由TimeFormat属性决定。
8.Mode属性
返回打开的MCI设备的当前模式,其设置值如表4所示。
表4                                                 Mode属性的设置值
常数/设备模式
说明
524
mciModeNotOpen
设备没有打开
525
mciModeStop
停止
526
mciModePlay
正在播放
527
mciModeRecord
正在录制
528
mciModeeek
正在搜索
529
mciModePause
暂停
530
mciModeReady
设备准备好
例  播放背景音乐,并显示当前状态。
(1)启动VB,新建一个工程,将MMControl控件添加到工具箱中。
(2)在窗体上添加一个MMControl控件和一个Label控件,均使用默认名称。
(3)切换到代码窗口,编写如下代码。
Private Sub Form_Load()
With MMControl1
.FileName = App.Path & "\back\mr.wav"                      '指定多媒体文件
.Command = "Open"                                                   '打开多媒体文件
.Command = "play"                                                     '播放多媒体文件
End With
End Sub
'显示播放状态
Private Sub MMControl1_StatusUpdate()
Select Case MMControl1.Mode
Case 524
Label1.Caption = "设备没有打开"
Case 525
Label1.Caption = "停止"
Case 526
Label1.Caption = "正在播放"
Case 527
Label1.Caption = "正在录制"
Case 528
Label1.Caption = "正在搜索"
Case 529
Label1.Caption = "暂停"
Case 530
Label1.Caption = "设备准备好"
End Select
End Sub
Private Sub Form_Unload(Cancel As Integer)
Form1.MMControl1.Command = "Close"                           '关闭正在播放的多媒体文件
End Sub
按F5键,运行程序,结果如图2所示。
图2 播放WAV
9.Track属性
表示当前MCI设备上可用的曲目个数。例如播放CD时,显示当前曲目编号。
Private Sub MMControl1_StatusUpdate()
Label2.Caption = "当前曲目:" & Str$(MMControl1.Track)                              '显示当前曲目
End Sub
&说明:如果要获得总曲目数,可以使用Tracks属性。
10.Error和ErrorMessage属性
使用Error和ErrorMessage属性,可以处理MMControl控件产生的错误。在每个命令后可以检查错误情况。例如,在Open命令之后,可用下面的代码检查Error属性的值,以判断是否存在CD驱动器。如果没有可用的CD驱动器,则返回错误信息。例如:
If Form1.MMControl1.Error Then
MsgBox Form1.MMControl1.ErrorMessage,vbCritical, "未安装CD播放器或CD播放器不能正常工作"
End If
MMControl控件的事件
1.ButtonClick事件
当用户单击MMControl控件的各个命令按钮时,发生该事件。下面给出命令按钮所对应的事件,如表5所示。
表5                              Mode属性的设置值
命令按钮
说明
事件
倒带
MMControl1_PrevClick
快进
MMControl1_NextClick
步进
MMControl1_StepClick
回倒
MMControl1_BackClick
暂停
MMControl1_PauseClick
播放
MMControl1_PlayClick
录音
MMControl1_RecordClick
停止
MMControl1_StopClick
弹出
MMControl1_EjectClick
例  单击“弹出”按钮,提示光盘弹出,代码如下。
Private Sub MMControl1_EjectClick(Cancel As Integer)
MsgBox "光盘弹出!"
End Sub
2.StatusUpdate事件
按照按UpdateInterval属性所给定的时间间隔自动地发生。这一事件允许应用程序更新显示,以通知用户当前MCI设备的状态。
3.Done事件
当Notify属性为True,MCI命令结束时发生Done事件,该事件有一个参数NotifyCode,该参数表示MCI命令是否成功,其设置值如表6所示。
表6                     NotifyCode参数的设置值
常量
说明
1
mciSuccessful
命令成功的执行
2
mciSuperseded
命令被其它命令所替代
4
mciAborted
命令被用户中断
8
mciFailure
命令失败
例  当播放完多媒体文件时,将触发MMControl控件的Done事件,在该事件下将MMControl控件的“暂停”和“停止”按钮设置为不可用,代码如下。
Private Sub MMControl1_Done(NotifyCode As Integer)
MMControl.StopEnabled = False: MMControl.PauseEnabled = False             '“暂停”和“停止”按钮不可用
End Sub
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
《Visual Basic程序设计教程(第3版)》第8章多媒体编程基础
制作带有动画和声音的屏幕保护程序
MCI Command String总览(完全参数篇)
在PowerPoint中插入视频文件的方法
Excel中“集成”背景音乐全攻略 >>
PPT中对象插入的8个技巧
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服