用ActiveMovie创建媒体文件浏览器 |
br> ActiveMovie不仅是一个播放器,同时也是ActiveX套件中的一 个控件,它可以用来播放媒体文件,它支持绝大部分目前通用的媒 体格式,它可以播放Wave、Midi、Avi、MPEG、QuickTime Movie等 格式文件,甚至还可以用它来看影碟。由于它还是个控件,所以可 以在VB或VC的程序中调用它。对它的操作相当简单,只需提供要播 放的文件名就可以用Run、Pause、Stop方法来播放、暂停和停止该 媒体文件了。那么,如何利用微软提供的ActiveMovie控件来创建 媒体文件浏览器呢?在Microsoft Visual Basic 5.0(企业版)环 境下可以轻松地达到这个目的。本文将用一个具体实例手把手地教 你活用ActiveMovie控件。 1.程序设计 要用ActiveMovie控件创建媒体文件浏览器,并且这个浏览器 应该能同时浏览某个目录中的所有媒体文件,那就需要创建一个文 件浏览系统。这在VB中只需要一个驱动器列表框 (DriverListBox)、一个目录列表框(DirListBox)和一个文件列表 框(FileListBox)就可轻松地完成了,下面就给出其详细的步骤。 2.操作步骤 (1)启动Microsoft Visual Basic 5.0,创建一个“标准EXE” 的新工程; (2)为Form1设置一个合适的宽度、长度,并改变如下属性: (名称)= FrmAM KeyPreview=Ture 改变KeyPreview属性是为了让程序能够处理快捷键,这样,无 论当前焦点在哪个控件上,窗体首先截获的是键盘消息; (3)选择“工程”菜单中的“部件”命令,在部件对话框中选 中"Microsoft ActiveMovie Control",单击“确定”按钮,为当前的工具箱添加ActiveMovie控件; 图1. (4)这时在“工具箱”中出现"ActiveMovie"控件图标,双击它 以向窗体中添加一个ActiveMovie控件,并将其放置在Form1窗体的 右上方,属性设置如下: (名称)=AM1 MovieWindowSize=4 ShowPositionControls=True ShowSelectionControls=True 这样就可以用ActiveMovie控件所提供的控制按钮来播放媒体 文件了; (5)在Form1的左上方放置一个驱动器列表框控件,然后在其下 方添加一个目录列表框控件,紧接着再在其下方放置一个文件列表 框控件,并修改文件列表框的Pattern属性为*.AVI、*.MOV、*. DAT、*.MPG、*.WAV、*.MID、*.QT、*.MPEG,这是因为 ActiveMoive只能接受这些文件类型,这样,文件列表框就只显示 iveMoive能打开的文件了。 (6)在Drive1的Change事件中添加如下代码后,当改变驱动器 列表框中的盘符时,目录列表框将随之变动; Private Sub Drive1_Change() Dir1.Path = Drive1.Drive End Sub (7)在Dir1的Change事件中添加如下代码后,改变目录列表框 中的目录时,文件列表框中的目录也将随之变动; Private Sub Dir1_Change() File1.Path = Dir1.Path End Sub 至此,文件浏览系统就创建好了; (8)在File1的Click事件中添加如下代码后,用户选中某个文 件时,就会将文件名提供给ActiveMovie控件,并将此文件名显示 在窗体的标题栏中; Private Sub File1_Click() AM1.filename = File1.Path & "\" & File1.filename Caption = AM1.filename End Sub (9)在Form1的KeyDown事件中添加如下代码: Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Select Case KeyCode Case vbKeySpace Select Case AM1.CurrentState Case amvStopped AM1.Run Case amvRunning AM1.Pause Case amvPaused AM1.Run End Select Case vbKeyA If AM1.MovieWindowSize =_ amvOneHalfScreen Then AM1.FullScreenMode = True If AM1.CurrentState = amvRunning Then AM1.Pause AM1.Run End If End If AM1.MovieWindowSize = _ IIf(AM1.MovieWindowSize <4,_ AM1.MovieWindowSize + 1, 4) Case vbKeyS AM1.FullScreenMode = False AM1.MovieWindowSize =_ IIf(AM1.MovieWindowSize > 2, AM1.MovieWindowSize - 1, 2) End Select End Sub 在本事件中,用KeyCode判断用户按下了什么键,如果是 vbKeySpace(空格键),就用ActiveMovie控件的CurrentState属 性来判断当前的状态;如果是amvStopped或amvPaused,就执行播 放命令AM1.Run;如果是amvRunning,就执行暂停命令AM1.Pause; 如果用户按的是"A"键(vbKeyA),就放大屏幕尺寸。由于 ActiveMovie控件的MovieWindowSize属性的取值2、3、4分别表示 1/16屏幕、1/4屏幕、1/2屏幕,所以,为了放大屏幕,只需在此范 围内将MovieWindowSize的属性值加1即可。当MovieWindowSize的 值已经是4,而用户又按下了"A"键时,就要将播放窗口扩大到全 屏,即把FullScreenMode属性设为True,但这时并不立即生效,还 须执行暂停、再播放的过程。注意,在全屏方式下,窗体将失去输 入焦点,快捷键不再起作用,这时只有单击鼠标左键,才能回到刚 才的状态。如果用户按的是"S"键(vbKeyS),则应将 MovieWindowSize的值减1,并且将FullScreenMode属性设为 False。 (10)保存该工程并运行该程序。 3.运行结果 通过目录和文件列表框选择多媒体文件,然后用ActiveMovie 的播放和暂停键操作,或者用空格键播放和暂停,还可以用"A"和 "S"键调整播放窗口的大小x。 |