12.3.1 MCI多媒體控件(3)
(4)調試運行程序。
按F5鍵或選擇"調試"→"啓動調試"命令運行程序,單擊"打開文件"按鈕選擇一個avi文件進行播放,這時程序會自動播放AVI文件,如圖12-4所示。
(點擊查看大圖)圖12-4 程序播放test.avi文件 |
這時會發現,該文件的播放是在另外一個窗口中進行的,而且該窗口的出現位置是隨機的。如何使畫面在一個固定的窗口中播放呢?例如,如何使AVI在程序結果中的圖片框內播放呢?這時要使用hWndDisplay屬性,即要將圖片框的句柄賦給MCI控件的hWndDisplay屬性。
(5)修改程序代碼,使視頻文件在PictureBox中播放。
在窗體的Form_Load事件中添加下面代碼:
- Private Sub FrmMPlayer_Load(ByVal sender As System.Object, _
- ByVal e As System.EventArgs) Handles MyBase.Load
- mciPlayer.hWndDisplay = picDisplay.Handle.ToInt32
- End Sub
圖12-5 播放AVI文件 |
【專家提示】
播放AVI文件的關鍵是要將MCI控件的DeviceType屬性設置爲avivideo。
(6)爲播放器添加播放WAV、MIDI和MPEG等文件的功能。
在"打開文件"按鈕的Click事件中繼續添加代碼,功能如下:
- Private Sub btnOpenFile_Click(ByVal sender As System.Object, _
- ByVal e As System.EventArgs) Handles btnOpenFile.Click
- Dim dlgOpen As New OpenFileDialog
- dlgOpen.Filter = "avi格式|*.avi|wav格式|*.wav|mid格式|*.mid" + _
- "|mpg格式|*.mpg|dat格式|*.dat|mp3格式|*.mp3"
- dlgOpen.Title = "打開媒體文件"
- If dlgOpen.ShowDialog = Windows.Forms.DialogResult.OK Then
- mciPlayer.Command = "close"
- '判定打開了哪種類型的文件
- Select Case dlgOpen.FilterIndex
- 'avi格式
- Case 1
- Me.mciPlayer.DeviceType = "avivideo"
- 'wav格式
- Case 2
- Me.mciPlayer.DeviceType = "wavaudio"
- 'mdi格式
- Case 3ss
- Me.mciPlayer.DeviceType = "sequencer"
- 'mpeg格式
- Case 4, 5, 6
- Me.mciPlayer.DeviceType = "mpegvideo"
- Case Else
- MsgBox("無效的文件格式")
- Exit Sub
- End Select
- Me.mciPlayer.FileName = dlgOpen.FileName
- Me.mciPlayer.Command = "open"
- Me.mciPlayer.Command = "play"
- End If
- End Sub