MCI控件(三)

12.3.1  MCI多媒體控件(3)

(4)調試運行程序。

按F5鍵或選擇"調試"→"啓動調試"命令運行程序,單擊"打開文件"按鈕選擇一個avi文件進行播放,這時程序會自動播放AVI文件,如圖12-4所示。

 
(點擊查看大圖)圖12-4  程序播放test.avi文件

這時會發現,該文件的播放是在另外一個窗口中進行的,而且該窗口的出現位置是隨機的。如何使畫面在一個固定的窗口中播放呢?例如,如何使AVI在程序結果中的圖片框內播放呢?這時要使用hWndDisplay屬性,即要將圖片框的句柄賦給MCI控件的hWndDisplay屬性。

(5)修改程序代碼,使視頻文件在PictureBox中播放。

在窗體的Form_Load事件中添加下面代碼:

  1. Private Sub FrmMPlayer_Load(ByVal sender As System.Object, _  
  2. ByVal e As System.EventArgs) Handles MyBase.Load  
  3.     mciPlayer.hWndDisplay = picDisplay.Handle.ToInt32  
  4. End Sub 
再次運行程序,這時候發現,文件已經在PictureBox控件中播放了,如圖12-5所示。

 

圖12-5  播放AVI文件

【專家提示】

 

播放AVI文件的關鍵是要將MCI控件的DeviceType屬性設置爲avivideo。

(6)爲播放器添加播放WAV、MIDI和MPEG等文件的功能。

在"打開文件"按鈕的Click事件中繼續添加代碼,功能如下:

  1. Private Sub btnOpenFile_Click(ByVal sender As System.Object, _  
  2.     ByVal e As System.EventArgs) Handles btnOpenFile.Click  
  3.         Dim dlgOpen As New OpenFileDialog  
  4.         dlgOpen.Filter = "avi格式|*.avi|wav格式|*.wav|mid格式|*.mid" + _  
  5.                             "|mpg格式|*.mpg|dat格式|*.dat|mp3格式|*.mp3" 
  6.         dlgOpen.Title = "打開媒體文件" 
  7.         If dlgOpen.ShowDialog = Windows.Forms.DialogResult.OK Then 
  8.             mciPlayer.Command = "close" 
  9.             '判定打開了哪種類型的文件  
  10.             Select Case dlgOpen.FilterIndex  
  11.                 'avi格式  
  12.                 Case 1  
  13.                     Me.mciPlayer.DeviceType = "avivideo" 
  14.                 'wav格式  
  15.                 Case 2  
  16.                     Me.mciPlayer.DeviceType = "wavaudio" 
  17.                 'mdi格式  
  18.                 Case 3ss  
  19.                     Me.mciPlayer.DeviceType = "sequencer" 
  20.                 'mpeg格式  
  21.                 Case 4, 5, 6  
  22.                     Me.mciPlayer.DeviceType = "mpegvideo" 
  23.                 Case Else 
  24.                     MsgBox("無效的文件格式")  
  25.                     Exit Sub 
  26.             End Select 
  27.             Me.mciPlayer.FileName = dlgOpen.FileName  
  28.             Me.mciPlayer.Command = "open" 
  29.             Me.mciPlayer.Command = "play" 
  30.         End If 
  31.     End Sub 

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章