用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。
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。