使用多媒体控件
Multimedia 控件可用于管理媒体控制接口(MCI)设备。这些设备有:声卡、MIDI 发生器、CD-ROM 驱动器、音频播放器、视盘播放器和视频磁带录放器。Multimedia 控件具有一组执行 MCI 命令的下压式按钮。这些命令与通常的 CD 机或录像机上的命令(功能)很相象。Multimedia 控件从左到右,这些按钮依次定义为前一个、下一个、播放、暂停、向后步进、向前步进、停止、录制和弹出。用途
管理 MCI 设备的录制和播放。 
多媒体的要求和支持的设备类型
哪些按钮可用,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 播放数字波形文件的音频设备。 
MCI 命令
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 命令的许多其它信息。对 Multimedia 控件进行编程
通过设置 Enabled 和 Visible 属性,可使 Multimedia 控件在运行时可见或不可见。按照缺省规定,Enabled 和 Visible 属性被设置为 True,这样该控件在运行时就是可见的。如果不希望通过 Multimedia 控件上的按钮直接与用户交互,而希望使用该控件以求实现它的多媒体功能,那么可将 Visible 属性设置为 False。无论应用程序使用用户交互与否,都可以对 MCI 设备进行控制。要使单个的按钮可见或不可见,可以设置该按钮对应的 Visible 和 Enabled 属性。例如,Back 按钮中的 BackEnabled 和 BackVisible 属性。九个按钮中的每一个都有对应的这些属性。在绝大多数情况下,这些按钮的缺省功能已足以管理 MCI 设备。然而,Multimedia 控件还包含一些运行时属性,允许增加或重定义按钮命令。Notify、NotifyMessage 和 NotifyValue 属性提供了有价值的反馈信息,表明某个命令出错或完成。打开 MCI 设备
将 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 属性
使用 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 控件)”。

解决方案 »

  1.   

    示例(Multimedia MCI 控件)
    Visual Basic 示例下面的示例演示了打开一台使用兼容数据文件的 MCI 设备的过程。将这些代码放到 Form_Load 过程,应用程序就可以使用 Multimedia MCI 控件来对文件 Gong.wav 进行 播放、记录和倒带。在试运行这个示例之前,首先应创建一个包含 Multimedia MCI 控件的窗体。Private Sub Form_Load () 
       ' Set properties needed by MCI to open.
       MMControl1.Notify = FALSE
       MMControl1.Wait = TRUE
       MMControl1.Shareable = FALSE
       MMControl1.DeviceType = "WaveAudio"
       MMControl1.FileName = "C:\WINDOWS\MMDATA\GONG.WAV"   '打开 MCI WaveAudio 设备。
       MMControl1.Command = "Open"
    End Sub为了正确管理多媒体资源,在退出应用程序之前,应该关闭那些已经打开的 MCI 设备。将下面的语句放到 Form_Unload 过程,那么在退出包含 Multimedia MCI 控件的窗体之前,就可以关闭那些已经打开的 MCI 设备。Private Sub Form_Unload (Cancel As Integer)
       MMControl1.Command = "Close"
    End Sub