认识MMControl控件 MMControl控件包含一组高层次的独立于设备的命令,通过这些命令可以控制音频和视频等外围设备,包括CD、VCD、WAV、MIDI、AVI等。 MMControl控件属于ActiveX控件,使用前应首先将其添加到工具箱中。选择“工程”/“部件”命令,打开“部件”对话框,选择Microsoft Multimedia Control 6.0 SP3),单击“确定”按钮将其添加到工具箱中,在工具箱中双击 图1 MMControl控件添加过程 从上图可以看出,窗体上的MMControl控件,由多个按钮组成,这些按钮从左到右依次是:起始点、终止点、播放、暂停、后退、前进、停止、录制和弹出。它们的功能是管理MCI设备和播放音频或视频文件。 MMControl控件的属性1.Command属性 用于指定将要执行的MCI命令,以控制播放、存储多媒体文件谇,这些命令及功能如表1所示。 表1 MCI命令
实际编程中,常用命令为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属性设置值
DeviceType属性一般可以不设置,但是以下两种情况必须设置。 (1)播放CD、VCD时,必须指定设备类型。 (2)如果文件的扩展名没有指定将要使用的设备类型,那么打开复杂MCI设备时也必须指定设备类型。 3.TimeFormat属性 用来指定所有位置信息所使用的时间格式,其设置值为0~10,如表3所示。 表3 TimeFormat属性的设置值
3.From属性 指定开始播放文件或录制文件的开始时间。 4.To属性 与From属性对应,指定播放文件或录制文件的结束时间。 5.Position属性 该属性用于返回正在播放的多媒体文件的位置,时间单位由TimeFormat属性决定。 6.Length属性 用于规定打开的MCI设备上多媒体文件的总体播放长度,时间单位由TimeFormat属性决定。 7.Start属性 该属性指定当前正在播放的多媒体文件的起始位置,时间单位由TimeFormat属性决定。 8.Mode属性 返回打开的MCI设备的当前模式,其设置值如表4所示。 表4 Mode属性的设置值
例 播放背景音乐,并显示当前状态。 (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属性的设置值
例 单击“弹出”按钮,提示光盘弹出,代码如下。
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参数的设置值
例 当播放完多媒体文件时,将触发MMControl控件的Done事件,在该事件下将MMControl控件的“暂停”和“停止”按钮设置为不可用,代码如下。
Private Sub MMControl1_Done(NotifyCode As Integer) MMControl.StopEnabled = False: MMControl.PauseEnabled = False '“暂停”和“停止”按钮不可用 End Sub
|
|