VB.NET播放WAV實(shí)現(xiàn)方法介紹
VB.NET編程語(yǔ)言可以說(shuō)功能是非常強(qiáng)大的。而且其的應(yīng)用范圍也是很廣泛。比如對(duì)界面的操作,和對(duì)聲音的操作等等。我們今天將會(huì)了解到有關(guān)VB.NET播放WAV的相關(guān)應(yīng)用技巧,希望能給大家大帶來(lái)希望。
Wednesday, September 24 2003 1:24 PM 當(dāng)一定事件完成時(shí),程序發(fā)出特定的信號(hào)則可以增加程序的用戶界面特性,比如在下載完成或者選擇一個(gè)命令的時(shí)候。使用一個(gè)多媒體功能,通過(guò)一個(gè)vb程序來(lái)運(yùn)行WAV文件是一件輕而易舉的事情。然而,系統(tǒng)必須為這一操作而安裝一個(gè)聲卡。
你所需要的API函數(shù)稱為PlaySound,以下為該函數(shù)的聲明:
- Public Declare Function
PlaySound Lib "winmm.dll" _- Alias "PlaySoundA"
(ByVallpszName As String, _- ByValhModule As Long,
ByValdwFlags As Long) _- As Long
在這一函數(shù)中,第一個(gè)變量是名稱,包括運(yùn)行的Wave文件的路徑。第二個(gè)變量在運(yùn)行文件時(shí)通常不使用,所以你可以將它賦值為zero。最后一個(gè)變量包含控制函數(shù)如何工作的標(biāo)記。
為了當(dāng)前的需要,必須需要兩個(gè)標(biāo)記。它們是:
SND_ASYNC (value= 1):以異步方式運(yùn)行,這意味著當(dāng)播放聲音時(shí)函數(shù)在運(yùn)行。
SND_FILENAME (value = &H20000):第一個(gè)變量為一個(gè)文件名。
所以,以下VB.NET播放WAV代碼播放了DingDong.wav文件中的聲音:
- PlaySound "dingdong.
wav", CLng(0), _- SND_ASYNC Or SND_FILENAME
當(dāng)運(yùn)行在一個(gè)程序中運(yùn)行音頻文件時(shí),還有其他兩點(diǎn)值得注意。第一,你必須確保一個(gè)特定的音頻文件存在,否則會(huì)產(chǎn)生錯(cuò)誤。這一過(guò)程可以用以下一個(gè)簡(jiǎn)單的函數(shù)來(lái)完成:
- Public Function FileExists
(FullFileName) As Boolean- '' Passed a filename
(with path) returns- '' True if the file
exists, False if not.- Dim s
- s = dir(FullFileName)
- If s = "" Then
- FileExists = False
- Else
- FileExists = True
- End If
- End Function
第二,VB.NET播放WAV程序必須具有為用戶提供關(guān)閉聲音的選擇設(shè)置。這一過(guò)程可以通過(guò)使用一個(gè)比如gProgramSoundsEnabled的全局布爾變量來(lái)實(shí)現(xiàn)。
我的方法是在一個(gè)函數(shù)中同時(shí)處理這些需要,如下所示。(以下代碼假設(shè)音頻文件已經(jīng)存放在程序文件中)
- Private Sub PlaySoundX
(filename As String)- '' If sound is enabled
and filename exists,- '' play the specified sound.
- filename = App.path &
"" & filename- If FileExists(filename)
And gProgramSoundsEnabled Then- PlaySound filename, CLng(0),
SND_ASYNC Or SND_FILENAME- End If
- End Sub
正確使用這些函數(shù),程序就可以播放任何Wave文件,如下所示:
- PlaySoundX "DingDong.wav"
VB.NET播放WAV的其他方法包括窗體上的多媒體控制。當(dāng)你不需要這些控制特性時(shí),以上講述的技術(shù)已經(jīng)足夠,并且很容易掌握。
【編輯推薦】