單元八 多媒體處理
[學習目標] 熟悉VB.Net開發多媒體應用程序的流程。掌握多媒體控件的常用屬性、事件和方法。熟悉多媒體應用程序的設計技巧。
多媒體技術在現代程序設計中有著廣泛的應用,多媒體應用也是當前計算機的一個非常重要的應用,如影音播放、多媒體教學、工程演示等諸多方面。本章介紹了幾種常見多媒體播放軟件的開發實例,以期給讀者有益的啟示。
8.1 MP3播放器
【案例8-1】MP3播放器
MP3是目前最為流行的多媒體格式之一。它是將WAV文件以MPEG2的多媒體標准進行壓縮,壓縮後體積只有原來的1/10至1/15,而音質基本不變。這項技術使得一張碟片上就能容納十多個小時的音樂節目,相當於原來的十多張CD唱片。MP3也是網絡上非常流行的一種音樂格式。
MP3不是Windows的標准格式,因此Windows並不直接支持此類型的文件,本案例使用AxWindowsMediaPlayer控件實現MP3音樂的播放。播放器運行界面如圖8-1所示。在本案例中,單擊"添加"按鈕可一次添加多個MP3文件作為播放列表存放在ListVIEw控件中,雙擊列表中的曲目可以刪除之,還可以再按"添加"按鈕新增文件到列表中,並設置了播放時間與進度、曲名、快進、後退和暫停,退出、狀態欄等功能。
圖8-1 MP3播放器運行界面
[技能目標]
1.使用AxWindowsMediaPlayer控件播放MP3音樂
2.獲取當前播放時間與進度
3.添加和刪除播放文件
[操作要點與步驟]
1.建立一個新的Windows應用程序,命名為vbnet8-1。
2.在窗體上添加如下控件:2個Label 控件,一個TrackBar 控件,6個Button控件,1個ListVIEw控件,一個StatusBar控件,一個OpenFileDialog控件和一個Timer控件。調整控件大小及位置。
AxWindowsMediaPlayer不是VB.Net的標准控件,必須先添加到工具箱。添加AxWindowsMediaPlayer控件方法如下:
在工具箱上右擊鼠標,在彈出的菜單中選擇"添加/移出項…",在彈出的自定義工具箱的COM組件選項卡對話框中選中Windows Media Player復選框,然後確定,AxWindowsMediaPlayer就添加到工具箱中了。如圖8-2所示。
圖8-2 添加AxWindowsMediaPlayer控件
3.在"屬性"窗口中設置窗體及各控件的相關屬性,控件的部分屬性設置如表8-1。
表8-1 控件屬性設置
控件類別 控件名稱 屬性 設置結果
Form Form1 Text Vbnet8-1
Button Button1 Text 暫停
Button2 Text 添加
Button3 Text 播放
Button4 Text 向前
Button5 Text 向後
Button6 Text 退出
Label Label1 Text 00:00]長度:00分00秒
TextAlign MiddleCenter
Label2 Text
TextAlign MiddleCenter
TrackBar TrackBar1
ListView ListView1 VIEw Details
ColumnHeader1 Text 序號
TextAlign Left
ColumnHeader2 Text 歌曲名
TextAlign Center
ColumnHeader3 Text 路徑
TextAlign Center
AxWindowsMediaPlayer AxWindowsMediaPlayer1 Visible False
沒有設置屬性的控件及所有屬性均為默認值。上表中的ColumnHeader1是添加Column屬性後的設置,這種設置方法在前面的章節中介紹過。
4.以上三步完成了界面設計,現開始編寫代碼。
(1)首先在Form1類裡定義幾個變量,代碼如下:
Dim paths() As String '定義打開文件路徑數組
Dim FileName As String '定義文件名稱
Dim SingName As String '定義歌曲名稱
Dim i As Integer
Dim selIndex As Integer
Dim path As String
(2)為Form1_Load()事件中添加如下代碼,對控件初始化。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
.ListVIEw1.FullRowSelect = True '可以整行選取
.ListVIEw1.MultiSelect = True '可以選取多項
.ListVIEw1.HoverSelection = True '鼠標懸在上面一段時間即表示選取該項
.Button3.Enabled = False
End Sub
(3)為"添加"命令按鈕添加代碼,啟動打開文件對話框,可以一次向ListVIEw1控件中添加多個MP3文件,並顯示播放順序,歌曲名和歌曲所在路徑,代碼如下。
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles Button2.Click
Dim sfile As String '定義歌曲名稱
Dim j As Integer '定義循環變量
Dim count As Integer '定義已有歌曲數目
With .OpenFileDialog1 '打開新文件
.Title = "打開mp3文件"
.CheckFileExists = True
.CheckPathExists = True
.Multiselect = True
.Filter = "mp3文件(*.mp3)|*.mp3"
.ShowDialog()
paths = .FileNames
End With
i = paths.GetUpperBound(0) '獲取此次打開的文件數目
For j = 0 To i
count = .ListVIEw1.Items.Count '獲取現有文件數目
sfile = paths(i - j).Substring(paths(j).LastIndexOf("\") + 1) '獲取歌曲名稱
Dim mitem As New ListVIEwItem(count + 1, j)
mitem.SubItems.Add(sfile)
mitem.SubItems.Add(paths(i - j))
.ListVIEw1.Items.Add(mitem) '把新打開的文件添加到列表控件中
.Button3.Enabled = True
Next
End Sub
(4)為"播放"、"暫停"、"退出"、"向前"、"向後"命令按鈕添加代碼,用來控制音樂的播放,代碼如下。
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles Button3.Click
.AxWindowsMediaPlayer1.URL = Path '設置播放文件
.AxWindowsMediaPlayer1.Ctlcontrols.play() '開始播放
Label2.Text = FileName
.Button2.Enabled = True
Dim s1, s2 As Integer
s1 = .AxWindowsMediaPlayer1.currentMedia.duration
s2 = .AxWindowsMediaPlayer1.Ctlcontrols.currentPosition
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles_ Button1.Click
AxWindowsMediaPlayer1.Ctlcontrols.pause() '暫停'
End Sub
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles Button6.Click
Close()
End
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles Button5.Click
AxWindowsMediaPlayer1.Ctlcontrols.fastReverse() '向後
End Sub
(5)為Timer控件添加代碼,主要獲得當前播放進度,代碼如下。
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles Timer1.Tick
Dim d1, d2 As Integer
Dim m1, m2 As Integer
Dim s1, s2 As Integer
d1 =AxWindowsMediaPlayer1.Ctlcontrols.currentPosition '獲取當前播放進度
d2 =AxWindowsMediaPlayer1.currentMedia.duration '獲取需要的總時間
.TrackBar1.Value = d1
m1 = d1 \ 60 : s1 = d1 Mod 60
m2 = d2 \ 60 : s2 = d2 Mod 60
Label1.Text = "已播放 " & m1 & ":" & Format(s1, "00") & _
" ( " & m2 & ":" & Format(s2, "00") & " )" '顯示播放進度
End Sub
使用.Duration和.CurrentPosition方法分別獲取播放該首音樂需要的時間和當前的播放進度。
(6)為ListVIEw1 控件的雙擊事件添加代碼,當雙擊選擇的項時,則表示刪除選取的該項,代碼如下。
Private Sub ListVIEw1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles ListVIEw1.DoubleClick
ListVIEw1.SelectedItems.Item(0).Remove() '雙擊表示刪除該項
End Sub
使用.Remove方法,可以將所選擇的項移除。
如:
TrackBar是個滾動條類的控件,不過左右兩端沒有箭頭。控件的主要屬性及功能如表8-2如所示。
表8-2 TrackBar主要屬性與說明
屬性 說明
SmallChange 設置或取得按下鍵盤方向鍵時,每按一次移動滑塊的距離數值,這種方式為細調,默認值為1。
LargeChange 按下鍵盤PgUp、PgDn所改變的值,或拖動滑塊所改變的值,這種方式為粗調,默認值為5。
TickFrequency 設置TrackBar控件中滑塊刻度間的距離。
Maximum 設置或獲取TrackBar控件的最大值,默認值為10。
Minimum 設置或獲取TrackBar控件的最小值,默認值0。
Value TrackBar上滑塊目前所在位置的值
OrIEntation 設置TrackBar控件是呈水平或垂直顯示。其值為"Horizontal"時水平顯示,為"Vertical"時垂直顯示。
TickStyle TrackBar上刻度所出現的位置,有四種情況,如圖8-3所示。
圖8-3 TrackBar刻度位置
在本案例中,TrackBar和Timer兩個控件聯合起來以獲得文件播放進度。其他控件在前面的章節中已作過介紹,在此不再介紹。
[要點分析]
1. 本案例是播放mp3文件,所以在打開文件時,使用了語句OpenFileDialog1.Filter = "mp3文件(*.mp3)|*.mp3" 。
2. 本案例播放的是聲音文件,因些AxWindowsMediaPlayer控件的Visible屬性值設置為False,即播放控件不可見。
8.2 視頻播放器
【案例8-2】多媒體播放器
本案例是使用AxWindowsMediaPlayer控件制作的簡易視頻播放器,它具有比較強大的功能,可以控制播放的狀態,如播放、暫停和停止,可以調節播放的音量,可以顯示已播放時間,可全屏播放也可在窗口中播放,可測試系統中光驅個數與盤符,打開和關閉光驅倉門,顯示播放文件名稱及當前系統時間等。程序運行界面如圖8-5所示。
圖8-5 視頻播放器運行界面
[技能目標]
1. 使用AxWiondowsMediaPlayer控件播放多媒體音影文件
2. 使用TrackBar 控件調節播放音量
3. 獲取計算機系統光驅信息
4. 利用軟件實現光驅倉門的打開和關閉的方法
[操作要點與步驟]
1.建立一個新的Windows應用程序項目,項目名為vbnet8-2。
2.在窗體上添加控件:一個AxWinodowMediaPlayer控件,一個OpenFileDialog控件,一個Timer時間控件,五個Button命令按鈕,四個Label標簽控件,一個TrackBar控件,一個StatusBar 控件。調整各控件的位置及大小。
3.在"屬性"窗口中設置窗體及各控件的相關屬性,控件屬性設置如表8-2。
表8-2 各控件屬性設置結果
控件類別 控件名稱 屬性 設置結果
Form Form1 Text Vbnet8-2
Button Button1 Text 播放
Button2 Text 暫停
Button3 Text 停止
Button4 Text 打開文件
Button5 Text 打開和關閉光驅倉門
Label Label1 Text 文件信息
Label2 Text 曲名
Label3 Text
Label4 Text
AxWindowsMediaPlayer AxWindowsMediaPlayer1 fullScreen True
uiMode None
沒有設置屬性的控件及所有屬性均為默認值。
4.以上三步完成了界面設計,現開始編寫代碼。
(1)首先在Form1的Load事件編寫代碼,獲得本機的光驅信息,代碼如下。
Private Sub form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles MyBase.Load
'獲得計算機中有多少個光驅和它們的盤符
Dim i
Dim cdlabel As String
Dim k = AxWindowsMediaPlayer1.cdromCollection.count()
If k > 1 Then
For i = 0 To k - 1
cdlabel = cdlabel & _
AxWindowsMediaPlayer1.cdromCollection.Item(i).driveSpecifIEr()
Label3.Text = "這台計算機共有 " & k & _
" 台CD-ROM" & "分別是" & cdlabel & " "
Next
Else
cdlabel = cdlabel + _
AxWindowsMediaPlayer1.cdromCollection.Item(0).driveSpecifIEr()
/> Label3.Text = "這台計算機共有 " & k & _
" 台CD-ROM" & "分別是" & cdlabel & " "
End If
End Sub
(2)為"打開文件"按鈕編添加代碼,打開多媒體影視文件,並將打開的文件作為播放的文件,代碼如下。
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles Button4.Click
Dim strfilename As String
Dim OpenFileDialog1 As System.Windows.Forms.OpenFileDialog = _
New System.Windows.Forms.OpenFileDialog
OpenFileDialog1.ShowDialog()
strfilename = OpenFileDialog1.FileName
AxWindowsMediaPlayer1.URL = strfilename
End Sub
(3)為"播放"、"暫停"、"停止"按鈕添加代碼,以控制播放影視文件過程,代碼如下。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles Button1.Click
AxWindowsMediaPlayer1.Ctlcontrols.play() '播放
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles Button2.Click
AxWindowsMediaPlayer1.Ctlcontrols.pause() '暫停
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles Button3.Click
AxWindowsMediaPlayer1.Ctlcontrols.stop() '停止
End Sub
(4)為AxWindowsMediaPlayer1控件的PlayStateChange事件添加代碼,以獲取當前播放文件的名稱及總的播放時間信息,代碼如下。
Private Sub AxWindowsMediaPlayer1_PlayStateChange(ByVal sender As Object, ByVal e _
As AxWMPLib._WMPOCXEvents_PlayStateChangeEvent) Handles _
AxWindowsMediaPlayer1.PlayStateChange
'表示播放媒體發生變化時觸發此事件
Label4.Text = "此文件播放總時間是" & _
AxWindowsMediaPlayer1.currentMedia.durationString()
Timer1.Enabled = True
Label2.Text = "歌名:" & _
AxWindowsMediaPlayer1.currentMedia.getItemInfoBytype("Title", "", 0)
End Sub
(5)為Timer控件的Tick事件添加代碼,以獲取當前文件已播放時間和在狀態欄上顯示當前系統時間信息,代碼如下。
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles Timer1.Tick
Label4.Text = "已經播放時間:" & _
CInt(AxWindowsMediaPlayer1.Ctlcontrols.currentPosition) & "秒"
StatusBar1.Panels(5).Text = Now
End Sub
(6)為TrackBar1控件添加代碼,以調整播放影視文件時的音量,代碼如下:
Private Sub TrackBar1_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles TrackBar1.Scroll
AxWindowsMediaPlayer1.settings.volume = TrackBar1.Value '調整輸出音量
End Sub
至此,程序編寫完畢,按F5鍵或工具欄的運行按鈕即可運行程序。
[相關知識]
Windows Media Player播放器不僅可播放mp3文件,而且還可以播放cd,vcd,avi等多種音像文件。多媒體控件AxWindowsMediaPlayer添加方法及常用屬性在上面案例中已說明,在此僅做相關補充。
1. CdromCollection屬性
功能:獲取系統中光驅信息。
2. Count屬性
功能:獲取系統中光驅數目
例如:k = AxWindowsMediaPlayer1.CdromCollection.Count()
獲取系統中光驅數,其值存放於整型變量k中。
3. Item方法或程序
功能:獲取光驅在系統中的編號,此編號從0開始。
4. DriveSpecifIEr屬性
功能:獲取光驅的盤符。
例如:
Cdlabel = AxWindowsMediaPlayer1.CdromCollection.Item(i).DriveSpecifIEr()
其作用是:把系統中第i個光驅的盤符字符串賦值給變量cdlabel。
5. Eject方法
功能:用於打開或關閉光驅倉門。
例如:
AxWindowsMediaPlayer1.CdromCollection.Item(i).Eject() '打開或關閉第i個光驅倉門
6. Volume屬性
功能:設置播放時的音量。
例如:AxWindowsMediaPlayer1.Settings.Volume = TrackBar1.Value
其作用是:調整播放音量為TrackBar1控件所指示的音量值。
7. AutoStart屬性
功能:自動播放,其默認值為True。
若其值設置為True,當AxWindowsMediaPlayer控件中添加多媒體文件時,無須按播放按鈕便會自動播放;若其值設置為False,則添加多媒體文件時,必須要按播放按鈕才會播放。
例如:AxWindowsMediaPlayer1.Setting.AutoStart=False
8. Mute屬性
功能:設置播放時是否靜音,其默認值為False。
若其值為True,則AxWindowsMediaPlayer控件在播放媒體文件時,會是靜音狀態;若其值為False,則播放媒體文件時有聲音。
9. UiMode屬性
功能:設置播放時是否顯示播放器原來的控制按鈕和進度滑塊及音量調節等。若其值為None,則不顯示;若為Full,則顯示。
1. OpenFileDialog控件
在案例8-2中,當單擊"打開文件"按鈕時,用於啟動打開文件對話框,以選擇要打開的多媒體文件。此多媒體播放器可以播放任何Windows Media Player可播放的文件,程序中無須用Filter屬性設置文件過濾器。
2. TrackBar控件
案例中使用TrackBar調節播放音量。用鼠標拖動TrackBar上的滑塊,即可調增加或減小播放音量。其實現由以下語句完成:
AxWindowsMediaPlayer1.Settings.Volume = TrackBar1.Value。
3. Timer控件
觸發Timer的事件是Tick,以獲取當前播放的多媒體文件已播放時間,另外在狀態欄上顯示系統的當前時間。其實現格式是:
AxWindowsMediaPlayer1.Ctlcontrols.currentPosition '已播放時間
StatusBar1.Panels(5).Text = Now '在狀態欄的Panel(5)中顯示當前系統時間
4. Label控件
案例中的Label標簽控件用於顯示與正播放的多媒體文件相關的信息,如曲名、已播放時間、光驅信息等。主要是在程序中通過改變Label控件的Text屬性實現。
例如:
Label4.Text = "已經播放時間:" & _ CInt(AxWindowsMediaPlayer1.Ctlcontrols.currentPosition) & "秒"
8.3 Flash播放器
【案例8-3】Flash播放器
Flash動畫十分流行,發展很快,但有時下載了一些動畫也無法播放,這需在計算機系統中安裝一個Flash動畫播放器。本案例是一個簡易的動畫播放器,可打開Flash文檔並播放,也可暫停、繼續播放和退出操作,並且能顯示當前播放時間和進度指示。其運行界面如圖8-6所示。
圖8-6 Flash 播放器運行界面
[技能目標]
1.AxShockwaveFlash控件的添加與使用
沒有設置屬性的控件及所有屬性均為默認值。上表中的StatusBarPanel是StatusBar1控件中添加Panel屬性後的設置。
4. 為控件添加代碼。
(1)在Form1類中定義變量,代碼如下。
Dim PathNames() As String
'定義文件路徑數組
Dim count As Integer
'定義打開多文件的文件數目
Dim i As Integer
(2)為"文件"菜單的"打開"子菜單添加代碼,可選擇打開多個.swf文件,播放文件並顯示播放進度,代碼如下。
Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles MenuItem2.Click
With .OpenFileDialog1
.Title = "打開Flash動畫文件"
.CheckFileExists = True
.CheckPathExists = True
.Multiselect = True
'支持多選
.Filter = "Flash動畫(*.swf)|*.swf"
.ShowDialog()
PathNames = .FileNames
End With
If PathNames Is Nothing Then
Exit Sub
End If
.AxShockwaveFlash1.MovIE = PathNames(count)
'設置播放的文件路徑
.TrackBar1.Maximum = .AxShockwaveFlash1.TotalFrames
.AxShockwaveFlash1.Play()
'開始播放
.AxShockwaveFlash1.Loop = True
.Timer1.Enabled = True
End Sub
(3)為"停止播放"、"繼續播放"、"退出"子菜單添加代碼,以控制動畫播放過程,代碼如下。
Private Sub MenuItem5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles MenuItem5.Click
'停止播放
.AxShockwaveFlash1.Stop()
End Sub
Private Sub MenuItem6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles MenuItem6.Click
.AxShockwaveFlash1.Play()
'繼續播放
End Sub
Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles MenuItem3.Click
'退出
&nbs
p; End
End Sub
(4)為Time1的Tick事件添加代碼,以獲取當前播放進度,代碼如下:
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles Timer1.Tick
.TrackBar1.Value = .AxShockwaveFlash1.CurrentFrame
'獲取當前進度
.Label1.Text = "已播放百分比:" & _
.TrackBar1.Value * 100 \ _
.TrackBar1.Maximum + 1 & "%"
'獲取當前進度的百分比
End Sub
至此,代碼編寫完成,按F5運行,得到如前界面。
[相關知識]
在VB.NET中,不僅可以使用無比豐富的.Net類庫,而且還可以使用系統中安裝的COM組件。AxShockwaveFlash控件可實現在窗體中播放指定的Flash動畫。該組件在系統安裝時自動安裝在系統中,其常用的屬性和方法如下。
1. MovIE屬性
功能:指定播放的.swf格式文件。
例如: AxShockwaveFlash1.MovIE = PathNames(count)
2. TotalFrame屬性
功能:獲取播放文件的總幀數。
例如: TrackBar1.Maximum =AxShockwaveFlash1.TotalFrames
3. CurrentFrame屬性
功能:獲取播放文件的當前幀。
例如: TrackBar1.Value = AxShockwaveFlash1.CurrentFrame
4. isPlaying屬性
功能:判斷是否正在播放。
5. Play方法
功能:開始播放文件。
例如: AxShockwaveFlash1.Play()
6. Back方法
功能:跳到動畫的上一幀。
例如: AxShockwaveFlash1.Back()
7. Forward方法
功能:跳到動畫的下一幀。
例如: AxShockwaveFlash1.Forward()
8.GotoFrame方法
功能:跳到動畫指定的幀。
9. Stop方法
功能:暫停播放動畫文件。
例如: AxShockwaveFlash1.Stop()
10. Loop屬性
功能:是否循環播放。如果其值為True,則循環播放;若其值為False,則不循環播放。
例如: AxShockwaveFlash1.Loop = True '循環播放
8.4 DVD播放器
【案例8-3】DVD播放器
在多媒體領域,最熱門、最"終極"的就要算DVD了。DVD全面實現了MPEG2的性能指標,它的水平清晰度高達540線,比LD還64高出一大截;其聲音也采用了真正5.1通道(左右主音箱、中量、後方左右環繞及一路超重低音輸出)。不過要注意的是,這些優異的視聽效果是源於MPEG2的技術標准,而不是DVD技術本身。只不過采用MTG2的多媒體文件體積太過巨大,普通的CD碟已無法容納,而DVD技術的超高容量恰好與之相得益彰。目前最低容量(單面單層的DVD碟片容量是4.7G)可播放133分鐘,正好包括一部完整的故事片。
DVD是一種高質量的視頻壓縮技術 視頻的壓縮需要通過一定的編碼的。計算機系統中安裝了DVD解碼器後,Windows Media Player直接用於播放DVD。利用VB.Net的COM組件中的AxMSWebDVD控件等可開發功能強大的DVD播放器。
本案例是用VB.Net開發的簡易DVD播放器,具有播放、暫停、停止、彈出等功能。其運行界面如圖8-8所示。
圖8-8 DVD播放器運行界面
[技能目標]
1. AxMSWebDVD控件的使用
2. DVD播放器的系統環境
[操作要點與步驟]
1. 新建Windows應用程序項目,項目名為Vbnet8-4。
2. 在窗體中添加控件:一個AxMSWebDVD控件,四個Button命令按鈕控件,一個StatusBar控件。
AxMSWebDVD控件的添加方法與AxWindowsMediaPlayer控件添加方法相似。在自定義工具箱對話框的COM組件選項卡中,選中MSWebDVD Class復選框,該控件就添加到工具箱中了,如圖8-8所示。
圖8-8添加AxMSWebDVD 控件
3. 為窗體中的控件設置屬性值。各控件的屬性設置如表8-4所示.
表8-4 控件屬性設置結果
控件類型 控件名稱 屬性 屬性設置
Form Form1 Text Vbnet8-4
AxMSWebDVD AxMSWebDVD1 Dock None
Visible True
Button Button1 Text 播放
Button2 Text 暫停
Button3 Text 停止
Button4 Text 彈出
4. 至此,界面設計完成,以下編寫程序代碼。
(1)首先在Form1_Load()中設置各按鈕的狀態,"播放"是有效狀態,用於啟動DVD播放文件,其它幾個處於無效狀態。代碼如下。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles MyBase.Load
Button1.Enabled = True
Button2.Enabled = False
Button3.Enabled = False
Button4.Enabled = False
End Sub
(2)為"播放"按鈕添加代碼。單擊"播放"按鈕,開始播放DVD光驅中的碟片,此時"暫停"、"停止"變為有效狀態,"播放"、"彈出"按鈕變為無效。代碼如下。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles Button1.Click
AxMSWebDVD1.Play()
Button2.Enabled = True
Button3.Enabled = True
Button1.Enabled = False
Button4.Enabled = False
End Sub
(3)為"暫停"按鈕添加代碼。單擊"暫停"按鈕,暫停播放,此時"播放"、"停止"變為有效狀態,"彈出"為無效狀態。單擊"播放"按鈕時,繼續播放。代碼如下。
(4)為"停止"按鈕添加代碼。單擊"停止"按鈕,停止播放,"暫停"處於無效狀態,"播放"和"彈出"處於有效狀態。代碼如下。
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_
; Handles Button3.Click
AxMSWebDVD1.Stop()
Button2.Enabled = False
Button1.Enabled = True
Button4.Enabled = True
End Sub
(5)為"彈出"按鈕添加代碼。單擊"彈出"按鈕,打開光驅倉門,同時"播放"、"暫停"、"停止"按鈕的狀態變為無效。代碼如下。
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles Button4.Click
AxMSWebDVD1.Eject()
Button1.Enabled = False
Button2.Enabled = False
Button3.Enabled = False
End Sub
至此代碼添加完成,按F5或工具欄的運行按鈕就可運行程序了。
[相關知識]
在VB.Net的工具箱中,通過快捷菜單中"添加/移除項…"添加AxMSWebDVD控件,它是制作DVD播放器所需要的。其常用屬性和方法如表8-5所示。
表8-5 AxMsWebDVD控件的屬性和方法
屬性和方法 說明
Anchor屬性 控件的定位點。定位點定義控件綁定到容器的哪些邊
Dock屬性 控件的停靠點。指示停靠到容器的哪些邊
Locked屬性 確定控件能否移動和改變大小
Visible屬性 確定控件是否可見
mute屬性 指定播放是否消音
Play方法 播放DVD
Pause方法 暫停播放
Stop方法 停止播放
(c) (d)
圖8-9 視頻播放器界面
2.自行設計一個CD播放器。
本文檔由《WorkHelper 辦公助手》(http://workhelper.blogbus.com)收集並發布。