版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
多媒體程序設(shè)計(jì)
8.1MP3播放器8.2視頻播放器8.3Flash播放器8.4DVD播放器習(xí)題實(shí)驗(yàn)八媒體播放
8.1MP3播放器
【案例8-1】
MP3播放器。
MP3是目前最為流行的多媒體格式之一。它是將WAV文件以MPEG2的多媒體標(biāo)準(zhǔn)進(jìn)行壓縮,壓縮后體積只有原來的1/10~1/15,而音質(zhì)基本不變。這項(xiàng)技術(shù)使得一張碟片上能容納十多個(gè)小時(shí)的音樂節(jié)目,相當(dāng)于原來的十多張CD唱片。MP3也是網(wǎng)絡(luò)上非常流行的一種音樂格式。
MP3不是Windows的標(biāo)準(zhǔn)格式,因此Windows并不直接支持此類型的文件,本案例使用AxWindowsMediaPlayer控件來實(shí)現(xiàn)MP3音樂的播放。MP3播放器運(yùn)行界面如圖8-1所示。在本案例中,單擊“添加”按鈕可一次添加多個(gè)MP3文件作為播放列表存放在ListView控件中,雙擊列表中的曲目可以將其刪除,還可以再按“添加”按鈕新增文件到列表中,并設(shè)置了播放時(shí)間與進(jìn)度、曲名、快進(jìn)、后退和暫停、退出、狀態(tài)欄等功能。圖8-1MP3播放器運(yùn)行界面
【技能目標(biāo)】
(1)使用AxWindowsMediaPlayer控件播放MP3音樂。
(2)獲取當(dāng)前播放時(shí)間與進(jìn)度。
(3)添加和刪除播放文件。
【操作要點(diǎn)與步驟】
(1)建立一個(gè)新的Windows應(yīng)用程序,命名為VBnet8-1。
(2)在窗體上添加如下控件:2個(gè)Label控件、1個(gè)TrackBar控件、6個(gè)Button控件、1個(gè)ListView控件、1個(gè)StatusBar控件、1個(gè)OpenFileDialog控件和1個(gè)Timer控件。調(diào)整控件的大小及位置。說明:
AxWindowsMediaPlayer不是VB.NET的標(biāo)準(zhǔn)控件,必須先添加到工具箱。添加AxWindowsMediaPlayer控件的方法如下:
在工具箱上右擊鼠標(biāo),在彈出的菜單中選擇“添加/移出項(xiàng)...”,在彈出的自定義工具箱的COM組件選項(xiàng)卡對(duì)話框中選中WindowsMediaPlayer復(fù)選框,然后點(diǎn)擊“確定”,AxWindowsMediaPlayer就添加到工具箱中了,如圖8-2所示。
(3)在“屬性”窗口中設(shè)置窗體及各控件的相關(guān)屬性,控件的部分屬性設(shè)置如表8-1所示。圖8-2添加AxWindowsMediaPlayer控件說明:
沒有設(shè)置屬性的控件其所有屬性均為默認(rèn)值。表8-1中的ColumnHeader1是添加Column屬性后的設(shè)置,這種設(shè)置方法在前面的章節(jié)中介紹過。
(4)以上三步完成了界面設(shè)計(jì),下面開始編寫代碼。
●首先在Form1類里定義幾個(gè)變量,代碼如下:
Dimpaths()AsString ‘?定義打開文件路徑數(shù)組
DimFileNameAsString ’?定義文件名稱
DimSingNameAsString ‘?定義歌曲名稱
DimiAsInteger
DimselIndexAsInteger
DimpathAsString●為“添加”命令按鈕添加代碼,啟動(dòng)打開文件對(duì)話框,可以一次向ListView1控件中添加多個(gè)MP3文件,并顯示播放順序、歌曲名和歌曲所在路徑。代碼如下:●為“播放”、“暫停”、“退出”、“向前”、“向后”命令按鈕添加代碼,用來控制音樂的播放,代碼如下:●為Timer控件添加代碼,主要獲得當(dāng)前播放進(jìn)度,代碼如下:技巧:
使用.Duration和.CurrentPosition方法可分別獲取播放該首音樂所需要的時(shí)間和當(dāng)前的播放進(jìn)度。
●為L(zhǎng)istView1控件的雙擊事件添加代碼,當(dāng)雙擊選擇的項(xiàng)時(shí),表示刪除該項(xiàng),代碼如下:說明:
使用.Remove方法可以將所選擇的項(xiàng)移除。
●為L(zhǎng)istView1控件的單擊事件添加代碼,當(dāng)單擊選擇項(xiàng)時(shí),停止當(dāng)前的播放而播放剛選取的文件,代碼如下:至此,程序編寫完成,按F5鍵或工具欄上的運(yùn)行按鈕運(yùn)行,添加MP3文件,便可播放了?!鞠嚓P(guān)知識(shí)】
知識(shí)點(diǎn)8-1-1多媒體控件AxWindowsMediaPlayer
VB.NET的多媒體編程技術(shù)中,AxWindowsMediaPlayer是常用的控件。AxWindows-MediaPlayer是WindowsMediaPlayer9.0中的ActiveX控件,使用之前要求系統(tǒng)中已安裝這個(gè)控件。此控件的添加已在前面介紹過,以下是其常用屬性和方法。
1.URL屬性
URL屬性用來指定所要播放的多媒體文件路徑與文件名。因在窗體上所建立的控件有操作面板,面板上有播放、停止、暫停等按鈕,故只要URL屬性有指定的多媒體文件的路徑與文件名,就能播放使用。屬性值的指定方法有如下兩種:
(1)通過AxWindowsMediaPlayer控件的屬性窗口,在URL屬性欄中直接輸入多媒體文件的路徑與文件名。如輸入
D:\VB.NET\媒體文件\cure.wav
(2)通過代碼在程序中指定,即將多媒體文件的路徑與文件名以字符串類型指定給URL屬性。如:
AxWindowsMediaPlayer1.URL=“D:\VB.NET\媒體文件\cure.wav”技巧:
在VB.NET中,多媒體控件名稱為AxWindowsMediaPlayer,與VB6.0中的AxMediaPlayer不同,另外,URL屬性在VB6.0中是Filename。
2.Ctlcontrols屬性
Ctlcontrols屬性是AxWindowsMediaPlayer的一個(gè)重要屬性,此控件中有許多常用成員。
(1)方法play:用于播放多媒體文件。其格式如下:
窗體名.控件名.Ctlcontrols.play()
例如:
.AxWindowsMediaPlayer1.Ctlcontrols.play()
(2)方法pause:用于暫停正在播放的多媒體文件。其格式如下:
窗體名.控件名.Ctlcontrols.pause()
例如:
.AxWindowsMediaPlayer1.Ctlcontrols.pause()
(3)方法stop:用于停止正在播放的多媒體文件。其格式如下:
窗體名.控件名.Ctlcontrols.stop()
例如:
.AxWindowsMediaPlayer1.Ctlcontrols.faststop()
(4)方法fastforward:用于將正在播放的多媒體文件快進(jìn)。其格式如下:
窗體名.控件名.Ctlcontrols.fastforward()
例如:
.AxWindowsMediaPlayer1.Ctlcontrols.forward()
(5)方法fastreverse:用于將正在播放的多媒體文件快倒。其格式如下:
窗體名.控件名.Ctlcontrols.fastreverse()
例如:
.AxWindowsMediaPlayer1.Ctlcontrols.fastfastreverse()
(6)屬性currentPosition:用于獲取多媒體文件當(dāng)前的播放進(jìn)度,其值是數(shù)值類型。其使用格式如下:
窗體名.控件名.Ctlcontrols.currentPosition
例如:
d1=.AxWindowsMediaPlayer1.Ctlcontrols.currentPosition
其中,d1是一個(gè)整型變量。
(7)屬性duration:用于獲取當(dāng)前多媒體文件播放的總時(shí)間,其值為數(shù)值類型。其使用格式如下:
窗體名.控件名.currentMedia.duration
例如:
d2=.AxWindowsMediaPlayer1.currentMedia.duration
其中,d2是一個(gè)整型變量。知識(shí)點(diǎn)8-1-2
TrackBar控件在多媒體程序中的應(yīng)用
TrackBar是一個(gè)滾動(dòng)條類的控件,不過左右兩端沒有箭頭??丶闹饕獙傩耘c說明如表8-2所示。圖8-3TrackBar上刻度的位置在本案例中,TrackBar和Timer兩個(gè)控件聯(lián)合起來可獲得文件播放進(jìn)度。其他控件在前面的章節(jié)中已作過介紹,在此不再介紹。
【要點(diǎn)分析】
(1)本案例要求播放MP3文件,所以在打開文件時(shí),使用了語句?.OpenFileDialog1.Filter=“MP3文件(*.MP3)|*.MP3”。
(2)本案例播放的是聲音文件,因此AxWindowsMediaPlayer控件的Visible屬性值設(shè)置為False,即播放控件不可見。
8.2視
頻
播
放
器
【案例8-2】多媒體播放器。
本案例是使用AxWindowsMediaPlayer控件制作的簡(jiǎn)易多媒體播放器,它具有比較強(qiáng)大的功能,可以控制播放的狀態(tài)(如播放、暫停和停止),可以調(diào)節(jié)播放的音量,可以顯示已播放時(shí)間,可全屏播放也可在窗口中播放,可測(cè)試系統(tǒng)中光驅(qū)個(gè)數(shù)與盤符,打開和關(guān)閉光驅(qū)倉門,顯示播放文件名稱及當(dāng)前系統(tǒng)時(shí)間等。多媒體播放器運(yùn)行界面如圖8-4所示。圖8-4多媒體播放器運(yùn)行界面【技能目標(biāo)】
(1)使用AxWiondowsMediaPlayer控件播放多媒體影音文件。
(2)使用TrackBar控件調(diào)節(jié)播放音量。
(3)獲取計(jì)算機(jī)系統(tǒng)光驅(qū)信息。
(4)利用軟件實(shí)現(xiàn)光驅(qū)倉門的打開和關(guān)閉方法。
【操作要點(diǎn)與步驟】
(1)建立一個(gè)新的Windows應(yīng)用程序項(xiàng)目,項(xiàng)目名為VBnet8-2。
(2)在窗體上添加控件:一個(gè)AxWindowsMediaPlayer控件、一個(gè)OpenFileDialog控件、一個(gè)Timer時(shí)間控件、五個(gè)Button命令按鈕、四個(gè)Label標(biāo)簽控件、一個(gè)TrachBar控件以及一個(gè)StatusBar控件。調(diào)整各控件的位置及大小。
(3)在“屬性”窗口中設(shè)置窗體及各控件的相關(guān)屬性,各控件的屬性設(shè)置如表8-3所示。說明:
沒有設(shè)置屬性的控件其所有屬性均為默認(rèn)值。
(4)以上三步完成了界面設(shè)計(jì),下面開始編寫代碼。
●首先為Form1的Load事件編寫代碼,獲得本機(jī)的光驅(qū)信息。●為“打開文件”按鈕添加代碼,打開多媒體影音文件,并將打開的文件作為播放的文件。代碼如下:●為“播放”、“暫?!薄ⅰ巴V埂卑粹o添加代碼,以控制播放影音文件的過程。代碼如下:●為AxWindowsMediaPlayer1控件的PlayStateChange事件添加代碼,以獲取當(dāng)前播放文件的名稱及總的播放時(shí)間信息。代碼如下:●為Timer控件的Tick事件添加代碼,以獲取當(dāng)前文件的已播放時(shí)間并在狀態(tài)欄上顯示當(dāng)前系統(tǒng)時(shí)間信息。代碼如下:●為TrackBar1控件添加代碼,以調(diào)整播放影音文件時(shí)的音量。代碼如下:至此,程序編寫完畢,按F5鍵或工具欄的運(yùn)行按鈕即可運(yùn)行程序?!鞠嚓P(guān)知識(shí)】
知識(shí)點(diǎn)8-2-1控件AxWindowsMediaPlayer在多媒體播放器中的應(yīng)用
WindowsMediaPlayer播放器不僅可播放MP3文件,而且還可以播放cd、vcd、avi等多種音像文件。多媒體控件AxWindowsMediaPlayer的添加方法及常用屬性在前面的案例中已說明,在此僅做相關(guān)補(bǔ)充。
1.CdromCollection屬性
功能:獲取系統(tǒng)中光驅(qū)信息。
2.Count屬性
功能:獲取系統(tǒng)中光驅(qū)數(shù)目。
例如:
k=AxWindowsMediaPlayer1.CdromCollection.Count()
上述語句用于獲取系統(tǒng)中的光驅(qū)數(shù),并將其值存放于整型變量k中。
3.Item方法或程序
功能:獲取光驅(qū)在系統(tǒng)中的編號(hào),此編號(hào)從0開始。
4.DriveSpecifier屬性
功能:獲取光驅(qū)的盤符。
例如:
Cdlabel=AxWindowsMediaPlayer1.CdromCollection.Item(i).DriveSpecifier()其作用是:把系統(tǒng)中第i個(gè)光驅(qū)的盤符字符串賦值給變量Cdlabel。
5.Eject方法
功能:用于打開或關(guān)閉光驅(qū)倉門。
例如:
AxWindowsMediaPlayer1.CdromCollection.Item(i).Eject()‘打開或關(guān)閉第i個(gè)光驅(qū)倉門
6.Volume屬性
功能:設(shè)置播放時(shí)的音量。
例如:
AxWindowsMediaPlayer1.Settings.Volume=TrackBar1.Value
其作用是:調(diào)整播放音量為TrackBar1控件所指示的音量值。
7.AutoStart屬性
功能:自動(dòng)播放,其默認(rèn)值為True。
若其值設(shè)置為True,則當(dāng)AxWindowsMediaPlayer控件中添加多媒體文件時(shí),無需按播放按鈕便會(huì)自動(dòng)播放;若其值設(shè)置為False,則添加多媒體文件時(shí),必須按播放按鈕才會(huì)播放。
例如:
AxWindowsMediaPlayer1.Setting.AutoStart=False
8.Mute屬性
功能:設(shè)置播放時(shí)是否靜音,其默認(rèn)值為False。
若其值為True,則AxWindowsMediaPlayer控件在播放媒體文件時(shí)為靜音狀態(tài);若其值為False,則播放媒體文件時(shí)有聲音。
9.UiMode屬性
功能:設(shè)置播放時(shí)是否顯示播放器原來的控制按鈕和進(jìn)度滑塊及音量調(diào)節(jié)等。若其值為None,則不顯示;若為Full,則顯示。
知識(shí)點(diǎn)8-2-2相關(guān)控件在多媒體播放器中的應(yīng)用
1.OpenFileDialog控件
在案例8-2中,當(dāng)單擊“打開文件”按鈕時(shí),該控件用于啟動(dòng)打開文件對(duì)話框,以選擇要打開的多媒體文件。此多媒體播放器可以播放任何WindowsMediaPlayer可播放的文件,程序中無需用Filter屬性設(shè)置文件過濾器。
2.TrackBar控件
在案例8-2中,使用TrackBar調(diào)節(jié)播放音量。用鼠標(biāo)拖動(dòng)TrackBar上的滑塊,即可增加或減小播放音量。其實(shí)現(xiàn)由以下語句完成:
AxWindowsMediaPlayer1.Settings.Volume=TrackBar1.Value
3.Timer控件
觸發(fā)Timer的事件是Tick,以獲取當(dāng)前播放的多媒體文件的已播放時(shí)間,另外在狀態(tài)欄上顯示系統(tǒng)的當(dāng)前時(shí)間。其實(shí)現(xiàn)格式如下:
AxWindowsMediaPlayer1.Ctlcontrols.currentPosition ‘?已播放時(shí)間
StatusBar1.Panels(5).Text=Now'?在狀態(tài)欄的Panels(5)中顯示當(dāng)前系統(tǒng)時(shí)間
4.Label控件
案例8-2中的Label標(biāo)簽控件用于顯示與正播放的多媒體文件相關(guān)的信息,如曲名、已播放時(shí)間、光驅(qū)信息等。在程序中主要通過改變Label控件的Text屬性來實(shí)現(xiàn)。
例如:
Label4.Text="已經(jīng)播放時(shí)間:"&_CInt(AxWindowsMediaPlayer1.Ctlcontrols.currentPosition)&"秒"
8.3Flash播放器
【案例8-3】
Flash播放器。
Flash動(dòng)畫十分流行,發(fā)展很快,但有時(shí)下載了一些動(dòng)畫也無法播放,這時(shí)需在計(jì)算機(jī)系統(tǒng)中安裝一個(gè)Flash動(dòng)畫播放器。本案例是一個(gè)簡(jiǎn)易的動(dòng)畫播放器,可打開Flash文檔并播放,也可暫停、繼續(xù)播放和退出操作,并且能顯示當(dāng)前播放時(shí)間和進(jìn)度指示。其運(yùn)行界面如圖8-5所示。圖8-5Flash播放器運(yùn)行界面
【技能目標(biāo)】
(1)?AxShockwaveFlash控件的添加與使用。
(2)菜單控制播放的方法。
(3)播放進(jìn)度指示的實(shí)現(xiàn)。
【操作要點(diǎn)與步驟】
(1)建立一個(gè)新的Windows應(yīng)用程序項(xiàng)目,項(xiàng)目名為VBnet8-3。
(2)在窗體上添加控件:一個(gè)AxShockwaveFlash控件、一個(gè)MainMenu控件、一個(gè)TrackBar控件、一個(gè)Label標(biāo)簽控件、一個(gè)StatusBar控件、一個(gè)OpenFileDialog控件以及一個(gè)Timer時(shí)間控件。調(diào)整各控件的位置及尺寸。說明:
AxShockwaveFlash控件的添加方法與AxWindowsMediaPlayer控件的添加方法相似。在自定義工具箱對(duì)話框的COM組件選項(xiàng)卡中,選中ShockwaveFlashObject復(fù)選框,該控件就添加到工具箱中了,如圖8-6所示。
(3)設(shè)置各控件的屬性值,如表8-4所示。圖8-6添加AxShockwaveFlash控件說明:
沒有設(shè)置屬性的控件其所有屬性均為默認(rèn)值。
(4)為控件添加代碼。
●在Form1類中定義變量,代碼如下:
DimPathNames()AsString
‘
定義文件路徑數(shù)組
DimcountAsInteger
’
定義打開多文件的文件數(shù)目
DimiAsInteger
●為“文件”菜單的“打開”子菜單添加代碼,可選擇打開多個(gè).swf文件,播放文件并顯示播放進(jìn)度。代碼如下:●為“停止播放”、“繼續(xù)播放”、“退出”子菜單添加代碼,以控制動(dòng)畫播放過程。代碼如下:●為Time1的Tick事件添加代碼,以獲取當(dāng)前播放進(jìn)度,代碼如下:至此,代碼編寫完成,按F5鍵運(yùn)行即得到如前界面。相關(guān)知識(shí)
知識(shí)點(diǎn)8-3-1控件AxShockwaveFlash
在VB.NET中,不僅可以使用非常豐富的?.NET類庫,而且還可以使用系統(tǒng)中安裝的COM組件。AxShockwaveFlash控件可實(shí)現(xiàn)在窗體中播放指定的Flash動(dòng)畫。該組件在系統(tǒng)安裝時(shí)自動(dòng)安裝在系統(tǒng)中,其常用的屬性和方法如下所述。
1.Movie屬性
功能:指定播放?.swf格式的文件。
例如:
.AxShockwaveFlash1.Movie=PathNames(count)
2.TotalFrame屬性
功能:獲取播放文件的總幀數(shù)。
例如:
.TrackBar1.Maximum=.AxShockwaveFlash1.TotalFrame
3.CurrentFrame屬性
功能:獲取播放文件的當(dāng)前幀。
例如:
.TrackBar1.Value=.AxShockwaveFlash1.CurrentFrame
4.isPlaying屬性
功能:判斷是否正在播放。
5.Play方法
功能:開始播放文件。
例如:
.AxShockwaveFlash1.Play()
6.Back方法
功能:跳到動(dòng)畫的上一幀。
例如:
.AxShockwaveFlash1.Back()
7.Forward方法
功能:跳到動(dòng)畫的下一幀。
例如:
.AxShockwaveFlash1.Forward()
8.GotoFrame方法
功能:跳到動(dòng)畫指定的幀。
9.Stop方法
功能:暫停播放動(dòng)畫文件。
例如:
.AxShockwaveFlash1.Stop()
10.Loop屬性
功能:是否循環(huán)播放。若其值為True,則循環(huán)播放;若其值為False,則不循環(huán)播放。
例如:
.AxShockwaveFlash1.Loop=True'循環(huán)播放
8.4DVD播放器
【案例8-4】
DVD播放器。
在多媒體領(lǐng)域,目前最熱門、最終極的就要數(shù)DVD了。DVD全面實(shí)現(xiàn)了MPEG2的性能指標(biāo),它的水平清晰度高達(dá)540線,比LD的64線還高出一大截;其聲音也采用了真正的5.1通道(左右主音箱、中量、后方左右環(huán)繞及一路超重低音輸出)。不過要注意的是,這些優(yōu)異的視聽效果源于MPEG2的技術(shù)標(biāo)準(zhǔn),而不是DVD技術(shù)本身。只不過采用MPEG2的多媒體文件體積太大,普通的CD碟已無法容納,而DVD技術(shù)的超高容量恰好與之相得益彰。目前最低容量的DVD(單面單層的DVD碟片容量是4.7?G)可播放133分鐘,正好包括一部完整的故事片。
DVD是一種高質(zhì)量的視頻壓縮技術(shù),視頻的壓縮需要通過一定的編碼。計(jì)算機(jī)系統(tǒng)中安裝了DVD解碼器后,WindowsMediaPlayer直接用于播放DVD。利用VB.NET的COM組件中的AxMSWebDVD控件等可開發(fā)功能強(qiáng)大的DVD播放器。
本案例要求用VB.NET開發(fā)簡(jiǎn)易DVD播放器,該播放器具有播放、暫停、停止、彈出等功能。其運(yùn)行界面如圖8-7所示。圖8-7DVD播放器運(yùn)行界面
【技能目標(biāo)】
(1)?AxMSWebDVD控件的使用。
(2)?DVD播放器的系統(tǒng)環(huán)境。
【操作要點(diǎn)與步驟】
(1)新建項(xiàng)目,項(xiàng)目名為VBnet8-4。
(2)在窗體中添加控件:1個(gè)AxMSWebDVD控件、4個(gè)Button命令按鈕控件和1個(gè)StatusBar控件。說明:
AxMSWebDVD控件的添加方法與AxWindowsMediaPlayer控件的添加方法相似。在自定義工具箱對(duì)話框的COM組件選項(xiàng)卡中,選中MSWebDVDClass復(fù)選框,該控件就添加到工具箱中了,如圖8-8所示。
(3)為窗體中的控件設(shè)置屬性值。各控件的屬性設(shè)置如表8-5所示。圖8-8添加AxMSWebDVD控件
(4)至此,界面設(shè)計(jì)完成,下面為各控件添加程序代碼。
首先,在Form1_Load()中設(shè)置各按鈕的狀態(tài),“播放”是有效狀態(tài),用于啟動(dòng)DVD播放文件,其他幾個(gè)處于無效狀態(tài)。代碼如下:●為“播放”按鈕添加代碼。單擊“播放”按鈕,開始播放DVD光驅(qū)中的碟片,此時(shí)“暫?!?、“停止”變?yōu)橛行顟B(tài),“播放”、“彈出”按鈕變?yōu)闊o效狀態(tài)。代碼如下:●為“暫?!卑粹o添加代碼。單擊“暫?!卑粹o,暫停播放,此時(shí)“播放”、“停止”變?yōu)橛行顟B(tài),“彈出”為無效狀態(tài)。單擊“播放”按鈕時(shí),繼續(xù)播放。代碼如下:●為“停止”按鈕添加代碼。單擊“停止”按鈕,停止播放,“暫?!碧幱跓o效狀態(tài),“播放”和“彈出”處于有效狀態(tài)。代碼如下:●為“彈出”按鈕添加代碼。單擊“彈出”按鈕,打開光驅(qū)倉門,同時(shí)“播放”、“暫停”、“停止”按鈕的狀態(tài)變?yōu)闊o效狀態(tài)。代碼如下:至此代碼添加完成,按F5鍵或工具欄的運(yùn)行按鈕就可運(yùn)行程序了?!鞠嚓P(guān)知識(shí)】
知識(shí)點(diǎn)8-4-1控件AxMSWebDVD
在VB.NET的工具箱中,通過快捷菜單中“添加/移除項(xiàng)…”添加AxMSWebDVD控件,它是制作DVD播放器所需要的。其常用屬性和方法如表8-6所示。
【要點(diǎn)分析】
本案例程序設(shè)計(jì)比較簡(jiǎn)單,通過按鈕來控制文件的播放、暫停、停止和光驅(qū)倉門的彈出。在設(shè)計(jì)過程中要注意各按鈕的狀態(tài)是否有效,以免發(fā)生錯(cuò)誤。
【知識(shí)擴(kuò)展】
1.API函數(shù)sndPlaySoundA
1)自定義函數(shù)可播放音頻文件函數(shù)——sndPlay
在WindowsXP的winmm.dll動(dòng)態(tài)鏈接庫存(DLL)中,有一個(gè)播放音頻文件的API函數(shù)sndPlaySoundA,它可用來播放?*.wav音頻文件,但VB.NET在使用它時(shí),需先自定義函數(shù),再調(diào)用使用。
(1)聲明。
PrivateDeclareFunctionsndPlayLib“winmm.dll”Alias“sndPlaySoundA”(ByValsndNameAs
String,ByvalflagsAsLong)AsLong●所聲明的sndPlay函數(shù)取自winmm.dll的sndPlaySoundA函數(shù),應(yīng)在窗體或模塊的聲明區(qū)聲明。
●所聲明的sndPlay函數(shù)有兩個(gè)參數(shù):第一個(gè)參數(shù)sndName為字符串類型數(shù)據(jù);第二個(gè)參數(shù)flags為長(zhǎng)整型數(shù)據(jù)。
(2)調(diào)用。在程序代碼中,調(diào)用sndPlay函數(shù)來播放?.wav音頻文件的語法如下:
ret=sndPlay(“文件名.wav”,flags)
●?flags自變量:指定播放音頻文件的方式,如表8-7所示?!?ret為調(diào)用sndPlay函數(shù)的返回值。若返回為0,則表示失?。环祷貫?,則表示成功。
●如果返回值可忽略,則可使用下列方法調(diào)用sndPlay函數(shù)。
?CallsndPlay(“文件名.wav”,flags)
或?sndPlay(“文件名.wav”,flags)
2)自定義停止播放音頻文件函數(shù)——sndStop
.wav音頻文件一經(jīng)播放,一定要播放完畢。若flags=9,則會(huì)一直重復(fù)播放而不會(huì)停止,除非再一次調(diào)用sndPlay函數(shù)(但flags參數(shù)不能再設(shè)為9或8),但必須再播放一次函數(shù)所指定的音頻文件。采用下列方式處理,可立即停止播放。
(1)聲明。
PrivateDeclareFunctionsndStopLib“winmm.dll”Alias_“sndPlaySoundA”(ByVal_NULAsString,ByValUflagsAsLong)AsLong
●所聲明的sndStop函數(shù)取自winmm.dll的sndPlaySoundA函數(shù),一樣要在窗體或模塊的聲明中定義。
●所聲明的sndStop函數(shù)有兩個(gè)參數(shù),皆為長(zhǎng)整型數(shù)據(jù)。
(2)調(diào)用。當(dāng)程序正在播放?.wav音頻文件時(shí),用下列方法調(diào)用sndStop可停止播放。
?CallsndStop(0,0)
或?sndStop(0,0)
2.API函數(shù)mciSendStringA
在WindowsXP的動(dòng)態(tài)鏈接庫(DLL)中,API函數(shù)mciSendStringA可播放*.wav、*.midi等多媒體文件。但在VB.NET中要使用時(shí),必須先聲明自定義函數(shù)再調(diào)用。
(1)聲明。
?PrivateDeclareFunctionmciSendLib“winmm.dll”Alias_“sndSendStringA”_
?(ByValCommandAsString,ByValReturnStringAsString,ByValReturnLength_
AsLong,ByValCallbackAsLong)AsLong
所聲明的mciSend函數(shù)取自winmm.dll的mciSendStringA函數(shù),要在窗體或模塊的聲明區(qū)聲明。
mciSend函數(shù)的四個(gè)參數(shù)中,前兩個(gè)為字符串類型,后兩個(gè)為長(zhǎng)整型。
(2)調(diào)用。在程序代碼中調(diào)用mciSend函數(shù)播放多媒體文件的語法如下:
?ret=mciSend("mci命令",0,0,0)
其中:
●?ret為調(diào)用mciSend函數(shù)的返回值,若為0,則表示失敗;若為1,則表示成功。
●返回值可忽略,可使用下列方法調(diào)用mciSend函數(shù):
?CallmciSend("mci命令",0,0,0)或mciSend("mci命令",0,0,0)
●?mci命令為字符串類型自變量,不同參數(shù)有不同的功能,其說明如表8-8所示。
(3)實(shí)例。
●打開一個(gè)*.wav文件,并將其別名設(shè)成sng。
mciSend(“opnec:\song\test.wavtypevaveaudioaliassng”,0,0,0)
●播放別名為sng的多媒體文件。
mciSend(“playsng”,0,0,0,0)
●只播放別名為sng的多媒體文件的50~120ms的范圍。
mciSend(“playsng50120”,0,0,0)
●暫停當(dāng)前播放的多媒體文件。
mciSend(“pause”,0,0,0)
●繼續(xù)播放別名為sng的多媒體文件。
mciSend("resumesng300",0,0,0)●將播放位置移到別名為sng的多媒體文件的300?ms的地方。
mciSend(“seeksng300”,0,0,0)
●停止播放名為sng的多媒體文件。當(dāng)再播放時(shí),只需再用play命令即可。
MciSend(“sto
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度天然氣儲(chǔ)備庫安全運(yùn)營(yíng)管理合同
- 二零二五年度工業(yè)設(shè)備安裝與調(diào)試服務(wù)合同3篇
- 二零二五版快遞企業(yè)快遞物品安全防護(hù)合同大全3篇
- 2025年度城市綜合體門頭廣告品牌形象改造合同3篇
- 2025年度拆遷安置房交易全程跟蹤服務(wù)合同協(xié)議3篇
- 個(gè)人消費(fèi)性借款合同(2024版)9篇
- 二零二五年度可再生能源發(fā)電特許經(jīng)營(yíng)合作協(xié)議合同范本
- 二零二五年度醫(yī)療健康信息化運(yùn)維保障合同2篇
- 2025版商業(yè)物業(yè)安全責(zé)任書(含應(yīng)急預(yù)案)3篇
- 2025年度個(gè)性化產(chǎn)后恢復(fù)與新生兒護(hù)理個(gè)人月嫂服務(wù)協(xié)議4篇
- 《裝配式蒸壓加氣混凝土外墻板保溫系統(tǒng)構(gòu)造》中
- T-CSTM 01124-2024 油氣管道工程用工廠預(yù)制袖管三通
- 2019版新人教版高中英語必修+選擇性必修共7冊(cè)詞匯表匯總(帶音標(biāo))
- 新譯林版高中英語必修二全冊(cè)短語匯總
- 基于自適應(yīng)神經(jīng)網(wǎng)絡(luò)模糊推理系統(tǒng)的游客規(guī)模預(yù)測(cè)研究
- 河道保潔服務(wù)投標(biāo)方案(完整技術(shù)標(biāo))
- 品管圈(QCC)案例-縮短接臺(tái)手術(shù)送手術(shù)時(shí)間
- 精神科病程記錄
- 閱讀理解特訓(xùn)卷-英語四年級(jí)上冊(cè)譯林版三起含答案
- 清華大學(xué)考博英語歷年真題詳解
- 人教版三年級(jí)上冊(cè)口算題(全冊(cè)完整20份 )
評(píng)論
0/150
提交評(píng)論