如何用VB程序來播放WAV文件
2024-07-21 02:20:31
供稿:網友
注冊會員,創建你的web開發資料庫,wednesday, september 24 2003 1:24 pm 當一定事件完成時,程序發出特定的信號則可以增加程序的用戶界面特性,比如在下載完成或者選擇一個命令的時候。使用一個多媒體功能,通過一個vb程序來運行wav文件是一件輕而易舉的事情。然而,系統必須為這一操作而安裝一個聲卡。
你所需要的api函數稱為playsound,以下為該函數的聲明:
public declare function playsound lib "winmm.dll" _
alias "playsounda" (byvallpszname as string, _
byvalhmodule as long, byvaldwflags as long) _
as long
在這一函數中,第一個變量是名稱,包括運行的wave文件的路徑。第二個變量在運行文件時通常不使用,所以你可以將它賦值為zero。最后一個變量包含控制函數如何工作的標記。
為了當前的需要,必須需要兩個標記。它們是:
snd_async (value= 1):以異步方式運行,這意味著當播放聲音時函數在運行。
snd_filename (value = &h20000):第一個變量為一個文件名。
所以,以下代碼播放了dingdong.wav文件中的聲音:
playsound "dingdong.wav", clng(0), _
snd_async or snd_filename
當運行在一個程序中運行音頻文件時,還有其他兩點值得注意。第一,你必須確保一個特定的音頻文件存在,否則會產生錯誤。這一過程可以用以下一個簡單的函數來完成:
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
第二,程序必須具有為用戶提供關閉聲音的選擇設置。這一過程可以通過使用一個比如gprogramsoundsenabled的全局布爾變量來實現。
我的方法是在一個函數中同時處理這些需要,如下所示。(以下代碼假設音頻文件已經存放在程序文件中)
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
正確使用這些函數,程序就可以播放任何wave文件,如下所示:
playsoundx "dingdong.wav"
從vb程序播放音頻文件的其他方法包括窗體上的多媒體控制。當你不需要這些控制特性時,以上講述的技術已經足夠,并且很容易掌握。