VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)
首页 - 经验之谈 - 用ActiveMovie创建媒体文件浏览器
发表评论(0)作者:不详, 平台:VB6.0+Win98, 阅读:11675, 日期:2002-05-06
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。