Multimedia 控件可用于管理媒体控制接口(MCI)设备。这些设备有:声卡、MIDI 发生器、CD-ROM 驱动器、音频播放器、视盘播放器和视频磁带录放器。
Multimedia 控件具有一组执行 MCI 命令的下压式按钮。这些命令与通常的 CD 机或录像机上的命令(功能)很相象。
Multimedia 控件
从左到右,这些按钮依次定义为前一个、下一个、播放、暂停、向后步进、向前步进、停止、录制和弹出。
哪些按钮可用,Multimedia 控件提供哪些功能,取决于特定计算机的硬件和软件配置。例如,应用程序中使用了特定的多媒体设备和驱动程序,则它们必须已安装在该机器中。
在 Windows 95 和 Windows NT 操作系统中提供了支持多种多媒体设备(比如音频和视频文件)的驱动程序。其它设备,比如数字音频磁带机或图象扫描仪需要独立的驱动程序,这些驱动程序通常由制造商提供。
设备分为两种:简单的和复合的。简单的多媒体设备不需要数据文件即可播放。例如,打开视频或音频 CD 播放器后,可通过“曲目”进行播放、回绕和快进。而复合设备则必须通过数据文件才能播放。
下表列出了 Multimedia 控件支持的部分设备和为使用设备而由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 | 视频文件 |
videodisc | Videodisc | 视盘播放器 | |
waveaudio | Waveaudio | .wav | 播放数字波形文件的音频设备。 |
Multimedia 控件使用一套高层次的、与设备无关的命令,被称为媒体控制接口命令,它们可控制多种多媒体设备。其中的许多命令直接与 Multimedia 控件的按钮对应。例如,Play 命令就与“播放”按钮相对应。
Multimedia 控件本质上是该命令集的 Visual Basic 接口。如 Play 或 Close 等命令在 Win32(R)
API 的 MCI 命令结构中都有等价命令。例如,Play 对应 MCI_PLAY。下表列出了 Multimedia 控件使用的 MCI 命令,同时还列出了它们对应的 Win32 命令:
命令 | MCI 命令 | 描述 |
Open | MCI_OPEN | 打开 MCI 设备。 |
Close | MCI_CLOSE | 关闭 MCI 设备。 |
Play | MCI_PLAY | 用 MCI 设备进行播放。 |
Pause | MCI_PAUSE 或 MCI_RESUME | 暂停播放或录制。 |
Stop | MCI_STOP | 停止 MCI 设备。 |
Back | MCI_STEP | 向后步进可用的曲目。 |
Step | MCI_STEP | 向前步进可用的曲目。 |
Prev | MCI_SEEK | 使用 Seek 命令跳到当前曲目的起始位置。如果在前一 Prev 命令执行后三秒内再次执行,则跳到前一曲目的起始位置;或者如果已在第一个曲目则跳到第一个曲目的起始位置。 |
Next | MCI_SEEK | 使用 Seek 命令跳到下一个曲目的起始位置(如果已在最后一个曲目,则跳到最后一个曲目的起始位置)。 |
Seek | MCI_SEEK | 向前或向后查找曲目。 |
Record | MCI_RECORD | 录制 MCI 设备的输入。 |
Eject | MCI_SET | 从 CD 驱动器中弹出音频 CD。 |
Save | MCI_SAVE | 保存打开的文件。 |
在 Visual Basic 中,这些命令用 Multimedia 控件的 Command 属性启动。例如:
MMControl1.Command = "Open"
虽然 Multimedia 控件实现的 MCI 命令集,在大多数情况下是足够用的,然而直接使用 Win32 API,可以提供高级的编程函数和技术。
详细信息 有关 MCI 命令的其它信息,请参阅 Microsoft Multimedia Development Kit Programmer's Workbook 或 Software Development Kit Multimedia Programmer's Reference。在 Microsoft Developer Network CD 中,提供了这些参考,以及 MCI 命令的许多其它信息。
通过设置 Enabled 和 Visible 属性,可使 Multimedia 控件在运行时可见或不可见。按照缺省规定,Enabled 和 Visible 属性被设置为 True,这样该控件在运行时就是可见的。
如果不希望通过 Multimedia 控件上的按钮直接与用户交互,而希望使用该控件以求实现它的多媒体功能,那么可将 Visible 属性设置为 False。无论应用程序使用用户交互与否,都可以对 MCI 设备进行控制。
要使单个的按钮可见或不可见,可以设置该按钮对应的 Visible 和 Enabled 属性。例如,Back 按钮中的 BackEnabled 和 BackVisible 属性。九个按钮中的每一个都有对应的这些属性。
在绝大多数情况下,这些按钮的缺省功能已足以管理 MCI 设备。然而,Multimedia 控件还包含一些运行时属性,允许增加或重定义按钮命令。
Notify、NotifyMessage 和 NotifyValue 属性提供了有价值的反馈信息,表明某个命令出错或完成。
将 Multimedia 控件放置到窗体中后,不管它被设置为可见的还是不可见的,第一步都是要访问 MCI 设备。为做到这一点,需要设置一些运行时才可用的属性。例如:
'
设置媒体设备的初始化属性值MMControl1.Notify = False
MMControl1.Wait = True
MMControl1.Shareable = False
MMControl1.DeviceType = "CDAudio"
如果将 Notify 属性设置为 True,则在下一命令完成时,将产生 Done 事件。Done 事件提供了很有用的反馈信息,以指出该命令成功还是失败。Wait 属性指定 Multimedia 控件是否等到下一命令执行完毕,才将控制权还给应用程序。Shareable 属性限制或允许其它应用程序或进程使用该媒体设备。DeviceType 属性被用来指定 MCI 设备的类型。
最后,Open 命令用来打开 MCI 设备。
'
打开媒体设备MMControl1.Command = "Open"
当该控件是可见的时候,设置这些属性,并使用 Open 命令,将激活由该 MCI 设备支持的 Multimedia 控件的下压式按钮。例如,打开 cdaudio 设备将激活“前一个”、“下一个”、“播放”和“弹出”按钮。按下“播放”后,“停止”和“暂停”按钮被激活。
在一个窗体中可以加入多个 Multimedia 控件的实例,以提供对多个 MCI 设备的并行控制。对每个设备只能使用一个 Multimedia 控件。
要正确地管理多媒体和系统资源,就必须在退出应用程序前将打开的 MCI 设备关闭。在包含 Multimedia 控件的窗体卸载时,可在该窗体的 Form_Unload 过程中使用下面的语句,以关闭正打开着的 MCI 设备。
Private Sub Form_Unload (Cancel as Integer)
Form1.MMControl1.Command = "Close"
End Sub
使用 Error 和 ErrorMessage 属性,可以处理 Multimedia 控件产生的错误。在每个命令后可以检查错误情况。例如,在 Open 命令之后,可用下面的代码检查 Error 属性的值,以判断是否存在 CD 驱动器。如果没有可用的 CD 驱动器,则返回错误信息。例如:
If Form1.MMControl1.Error Then MsgBox Form1.MMControl1.ErrorMessage,vbCritical, "
未安装CD
播放器或CD
播放器不能正常工作"
End If
详细信息 请参阅“ErrorMessage 属性(多媒体 MCI 控件)”以及“Error 属性(多媒体 MCI 控件)”。