在多媒體軟件的開發(fā)設(shè)計中,聲音是一個相當(dāng)重要的多媒體元素,優(yōu)秀的聲音設(shè)計會為多媒體軟件增色不少。而WAV格式的聲音文件是一種最常用的聲音文件格式,也最容易得到,比如通過Win 95中的“錄音機(jī)”程序,利用麥克風(fēng)就可以非常簡單地錄制WAV文件。VB是一個相當(dāng)經(jīng)典的多媒體開發(fā)的工具,在VB中播放WAV文件的方法主要有這樣幾種。
一、利用OLE控件
建一窗體,用鼠標(biāo)選擇OLE控件,在窗體上拖出OLE區(qū)域,在圖一的窗口中選擇新建和聲音然后按確定鍵就完成了在窗口中添加OLE控件,如圖二。
這樣就可以在OLE控件的ResourceDoc屬性中選擇所要播放的文件,程序運行時雙擊OLE控件即可。
在實際的程序設(shè)計當(dāng)中,往往需要單擊某個圖標(biāo)或按鈕來控制聲音的播放,其實現(xiàn)方法是這樣的:首先將OLE控件的VISIBLE屬性設(shè)置為FALSE,然后在圖標(biāo)或按鈕的單擊事件中編寫如下的程序:
Private Sub Contol_Click()
OLE1.Action = 7
End Sub
二、利用MMControl控件
VB5.0提供了許多設(shè)計多媒體的控件,在PROJECT/COMPENENTS/CONTROLS中選擇MMControls 控件,窗體上就出現(xiàn)了多媒體控件對象,在這個對象上有不同的圖形功能標(biāo)識,其名稱從左到右分別是Pre、Next、Play、Pause、Back、Step、Stop、Record 、Eject 如圖三。
這個多媒體控件可以播放多種格式的聲音,播放WAV格式聲音文件的程序代碼
Private Sub form_load()
MMControl1.DeviceType = "waveaudio"
MMControl1.filename = "c:win95mediading.wav"
MMControl1.Command = "open"
End Sub
'以下是為圖形標(biāo)識Play事件編寫的代碼
Private Sub MMControl_playclick(cancel As Integer)
MMControl1.Command = "play"
End Sub
當(dāng)運行這個程序時,MMControl控件中的Play鍵被激活,點取此按鈕即可播放ding.wav文件。
在實際的軟件設(shè)計當(dāng)中,更多的情況是鼠標(biāo)點擊按鈕或圖標(biāo)來控制聲音的播放, 其實現(xiàn)方法是這樣的:首先將MMControl控件的VISIBLE屬性設(shè)置為FALSE,然后在圖標(biāo)或按鈕的單擊事件中編寫如下的程序:
Private Sub Control1_Click()
MMControl1.Command = "play"
End Sub
運行程序時單擊相用的按鈕或圖標(biāo),WAV文件照樣可以播放。用自行設(shè)計的按鈕或圖標(biāo)取代多媒體控件中的固定按鈕,可設(shè)計出更加靈活方便的用戶界面。
三、利用VB的API函數(shù)
在窗體的DECLARATIONS(聲明)中輸入如下代碼:
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal_lpszSoundName As String, ByVal uFlags As Long) As Long
'lpszSoundName是一個字符串變量,表示一個WAV格式的文件名。
'uFlags 用于設(shè)定播放狀態(tài)的各種選項。參數(shù)值為0X00時,實現(xiàn)同步播放,參數(shù)值為0X01時實現(xiàn)非同步播放。
在命令按鈕的單擊事件中輸入如下代碼:
Private Sub Command1_Click()
Dim plays As Long
plays = sndPlaySound(“E:WINDOWSMEDIADING.WAV", &H0)
End Sub
運行時單擊命令按鈕即可播放WAV文件。
一、利用OLE控件
建一窗體,用鼠標(biāo)選擇OLE控件,在窗體上拖出OLE區(qū)域,在圖一的窗口中選擇新建和聲音然后按確定鍵就完成了在窗口中添加OLE控件,如圖二。
這樣就可以在OLE控件的ResourceDoc屬性中選擇所要播放的文件,程序運行時雙擊OLE控件即可。
在實際的程序設(shè)計當(dāng)中,往往需要單擊某個圖標(biāo)或按鈕來控制聲音的播放,其實現(xiàn)方法是這樣的:首先將OLE控件的VISIBLE屬性設(shè)置為FALSE,然后在圖標(biāo)或按鈕的單擊事件中編寫如下的程序:
Private Sub Contol_Click()
OLE1.Action = 7
End Sub
二、利用MMControl控件
VB5.0提供了許多設(shè)計多媒體的控件,在PROJECT/COMPENENTS/CONTROLS中選擇MMControls 控件,窗體上就出現(xiàn)了多媒體控件對象,在這個對象上有不同的圖形功能標(biāo)識,其名稱從左到右分別是Pre、Next、Play、Pause、Back、Step、Stop、Record 、Eject 如圖三。
這個多媒體控件可以播放多種格式的聲音,播放WAV格式聲音文件的程序代碼
Private Sub form_load()
MMControl1.DeviceType = "waveaudio"
MMControl1.filename = "c:win95mediading.wav"
MMControl1.Command = "open"
End Sub
'以下是為圖形標(biāo)識Play事件編寫的代碼
Private Sub MMControl_playclick(cancel As Integer)
MMControl1.Command = "play"
End Sub
當(dāng)運行這個程序時,MMControl控件中的Play鍵被激活,點取此按鈕即可播放ding.wav文件。
在實際的軟件設(shè)計當(dāng)中,更多的情況是鼠標(biāo)點擊按鈕或圖標(biāo)來控制聲音的播放, 其實現(xiàn)方法是這樣的:首先將MMControl控件的VISIBLE屬性設(shè)置為FALSE,然后在圖標(biāo)或按鈕的單擊事件中編寫如下的程序:
Private Sub Control1_Click()
MMControl1.Command = "play"
End Sub
運行程序時單擊相用的按鈕或圖標(biāo),WAV文件照樣可以播放。用自行設(shè)計的按鈕或圖標(biāo)取代多媒體控件中的固定按鈕,可設(shè)計出更加靈活方便的用戶界面。
三、利用VB的API函數(shù)
在窗體的DECLARATIONS(聲明)中輸入如下代碼:
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal_lpszSoundName As String, ByVal uFlags As Long) As Long
'lpszSoundName是一個字符串變量,表示一個WAV格式的文件名。
'uFlags 用于設(shè)定播放狀態(tài)的各種選項。參數(shù)值為0X00時,實現(xiàn)同步播放,參數(shù)值為0X01時實現(xiàn)非同步播放。
在命令按鈕的單擊事件中輸入如下代碼:
Private Sub Command1_Click()
Dim plays As Long
plays = sndPlaySound(“E:WINDOWSMEDIADING.WAV", &H0)
End Sub
運行時單擊命令按鈕即可播放WAV文件。