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
再次运行程序,这时候发现,文件已经在PictureBox控件中播放了,如图12-5所示。
|
图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
-
- Case 1
- Me.mciPlayer.DeviceType = "avivideo"
-
- Case 2
- Me.mciPlayer.DeviceType = "wavaudio"
-
- Case 3ss
- Me.mciPlayer.DeviceType = "sequencer"
-
- 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