![《多媒體軟件設(shè)計(jì)技術(shù)》課件第6章_第1頁(yè)](http://file4.renrendoc.com/view6/M02/34/38/wKhkGWd972iAdpeCAAOBZ073LV0585.jpg)
![《多媒體軟件設(shè)計(jì)技術(shù)》課件第6章_第2頁(yè)](http://file4.renrendoc.com/view6/M02/34/38/wKhkGWd972iAdpeCAAOBZ073LV05852.jpg)
![《多媒體軟件設(shè)計(jì)技術(shù)》課件第6章_第3頁(yè)](http://file4.renrendoc.com/view6/M02/34/38/wKhkGWd972iAdpeCAAOBZ073LV05853.jpg)
![《多媒體軟件設(shè)計(jì)技術(shù)》課件第6章_第4頁(yè)](http://file4.renrendoc.com/view6/M02/34/38/wKhkGWd972iAdpeCAAOBZ073LV05854.jpg)
![《多媒體軟件設(shè)計(jì)技術(shù)》課件第6章_第5頁(yè)](http://file4.renrendoc.com/view6/M02/34/38/wKhkGWd972iAdpeCAAOBZ073LV05855.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
6.1VB播放音頻的方法6.2MP3的播放方法6.3兩個(gè)實(shí)例本章小結(jié)練習(xí)六眾所周知,VB是功能非常強(qiáng)大的多媒體開(kāi)發(fā)工具,它有著豐富的函數(shù)和方法,可處理各種各樣的多媒體信息,能夠很靈活地操作聲音等多媒體素材。在VB中用于輸出聲音的方法比較多,主要有以下四種。
6.1VB播放音頻的方法
1.利用Beep語(yǔ)句使揚(yáng)聲器發(fā)聲
在使用VB開(kāi)發(fā)應(yīng)用程序時(shí),根據(jù)應(yīng)用環(huán)境的需要,有時(shí)我們并不需要在應(yīng)用程序中大量地使用聲音,而只需在特定的場(chǎng)合出現(xiàn)聲音,如Windows的警告聲等。
Beep語(yǔ)句是VB提供的一條利用計(jì)算機(jī)揚(yáng)聲器發(fā)聲的語(yǔ)句,它雖然只能夠發(fā)出簡(jiǎn)單的蜂鳴聲,但在應(yīng)用程序中卻大量用于輸出警告的信息。如下例中,允許用戶在文本框中輸入數(shù)字,當(dāng)用戶輸入錯(cuò)誤時(shí),系統(tǒng)會(huì)報(bào)警提示。
除了Beep語(yǔ)句外,在VB中調(diào)用Windows的一些有關(guān)發(fā)聲的API函數(shù),也可以讓計(jì)算機(jī)的蜂鳴器發(fā)出不同頻率、時(shí)長(zhǎng)的聲音,從而奏出美妙的音樂(lè)。其中最常用的有關(guān)發(fā)聲的API函數(shù)是Beep,其聲明格式如下:其中dwFreq為聲音頻率,dwDuration為發(fā)聲時(shí)間。在VB的通用過(guò)程中聲明上述函數(shù)后,就可以在程序中對(duì)它進(jìn)行調(diào)用。
2.利用OLE2.0控件播放音頻
VB是第一個(gè)支持對(duì)象連接與嵌入(OLE)的開(kāi)發(fā)工具,利用OLE可以簡(jiǎn)單地在應(yīng)用程序中插入聲音文件,這也是使用VB開(kāi)發(fā)多媒體軟件常用的方法。從VB的工具箱中我們可以找到OLE?2.0控件。雙擊OLE?2.0控件時(shí),會(huì)彈出“InsertObject”窗口,在窗口中選擇對(duì)象類(lèi)型ObjectType為聲音文件,選擇“CreatefromFile”指定硬盤(pán)上聲音文件的位置,同時(shí)確認(rèn)Link方式。這些步驟其實(shí)是在設(shè)置OLE?2.0的屬性,我們通過(guò)打開(kāi)屬性窗口,設(shè)置其中的Class、SourceDoc、SourceItem等屬性,也可完成這一工作。按F5鍵運(yùn)行程序,雙擊OLE對(duì)象時(shí)就會(huì)發(fā)聲。與播放各種聲音文件相關(guān)的屬性為Action,通過(guò)設(shè)置Action屬性可以打開(kāi)、驅(qū)動(dòng)、刪除相應(yīng)的聲音對(duì)象。在下面的例子中,運(yùn)行程序后便可調(diào)用聲音文件:
3.利用VB的多媒體控件MCI32播放音頻及MIDI音樂(lè)
使用MCI32是VB開(kāi)發(fā)多媒體軟件的主要方法,利用MCI32在應(yīng)用程序中加入聲音文件是很容易的事。MCI32控件在工具箱里的名稱是MMControl,如果在工具箱里找不到它,則用添加控件的方法在部件中選中“MicrosoftMultimediaControl6.0”,就可以增加MMControl控件。
下面是利用MMControl控件設(shè)計(jì)播放WAV文件的程序。設(shè)計(jì)步驟如下:
(1)新建一個(gè)工程。
(2)在Form1上建立一個(gè)MMControl控制對(duì)象MMControl1(見(jiàn)圖6-1)。圖6-1在Form1上建立一個(gè)MMControl控制對(duì)象MMControl1
(3)設(shè)置MMControl1的屬性。在MMControl1控件上,通過(guò)單擊鼠標(biāo)右鍵,在彈出式菜單中選中屬性,就可出現(xiàn)MMControl1控件的屬性頁(yè)窗口。我們可以在該窗口的控件頁(yè)中設(shè)置MMControl1的屬性值,將倒帶、快進(jìn)、步進(jìn)、回倒、暫停、播放、錄音、停止按鈕設(shè)為可視(見(jiàn)圖6-2),便會(huì)出現(xiàn)倒帶、快進(jìn)、步進(jìn)、回倒、暫停、播放、錄音、停止按鈕。圖6-2將部分按鈕設(shè)為可視(4)在Form_Load中編寫(xiě)以下程序:為了正確管理多媒體資源,在退出應(yīng)用程序之前,應(yīng)該關(guān)閉那些已經(jīng)打開(kāi)的MCI設(shè)備。如果將下面的語(yǔ)句放到Form_Unload過(guò)程,那么在退出包含MultimediaMCI控件的窗體之前,就可以關(guān)閉那些已經(jīng)打開(kāi)的MCI設(shè)備。
程序說(shuō)明:
(1)?MMControl1.DeviceTypeMCI是指定多媒體文件的類(lèi)型,如:AVIVideo、CDAudio、DAT、DigitalVideo、MMMovie、Sequencer、VCR、WaveAudio等。
(2)?MMControl1.Filename是設(shè)定要播放WAV文件的路徑及文件名。
(3)?MMControl1.Command是MMControl的控制命令。以下是一些常用的控制命令:
(4)由于本程序利用MMControl的Button,因此只用到Open控制命令。
(5)程序執(zhí)行后,按Play按鈕就會(huì)播放語(yǔ)音,中途可按暫?;蛲V拱粹o。
(6)播放完畢后,要按倒帶按鈕才可以重新播放。
使用MCI32控件播放MIDI的方式與播放WAV的方式是一樣的。下面的程序可以用來(lái)播放MIDI音樂(lè):
4.調(diào)用API函數(shù)播放WAV文件、MIDI音樂(lè)及CD音樂(lè)
API函數(shù)非常多,讀者可以用VB中的“API文本瀏覽器”查找所需的API函數(shù),然后把它復(fù)制到自己的模塊程序中。
在調(diào)用API函數(shù)的時(shí)候,要分辨清楚16?bit和32?bit所用的動(dòng)態(tài)鏈接庫(kù)(DLL),不然會(huì)發(fā)生版本不對(duì)的錯(cuò)誤(這個(gè)錯(cuò)誤的錯(cuò)誤碼為48),從而造成程序無(wú)法執(zhí)行。為了避免發(fā)生這種錯(cuò)誤,我們可以在定義函數(shù)的模塊程序中加入下列“前置判斷”:在Windows系統(tǒng)中,有關(guān)多媒體功能的動(dòng)態(tài)鏈接庫(kù)中,16bit使用的是MMSystem.DLL,32bit使用的是WINMM.DLL。
sndPlaySound函數(shù)是播放WAV文件的API函數(shù)。下面給出sndPlaySound函數(shù)的定義及常數(shù)的定義。
函數(shù)的定義:
sndPlaySound函數(shù)需要兩個(gè)參數(shù):第一個(gè)參數(shù)soundfilename是要播放的WAV文件的名稱;第二個(gè)參數(shù)是一個(gè)表明播放方式的標(biāo)識(shí)常量。經(jīng)常使用的標(biāo)識(shí)意義如下:
SND_SYNC:播放WAV文件,播放完畢后將控制轉(zhuǎn)移回應(yīng)用程序中。
SND_ASYNC:播放WAV文件,然后將控制立即轉(zhuǎn)移回應(yīng)用程序中,而不管對(duì)WAV文件的播放是否結(jié)束。
SND_NODEFAULT:不播放缺省的WAV文件,以免發(fā)生某些意外的錯(cuò)誤。
SND_MEMORY:播放以前已經(jīng)加載到內(nèi)存中的WAV文件。
SND_LOOP:循環(huán)播放WAV文件。
SND_NOSTOP:在開(kāi)始播放其它的WAV文件之前,需要完成對(duì)本W(wǎng)AV文件的播放。
注意:
(1)上面的函數(shù)定義及常數(shù)定義用在標(biāo)準(zhǔn)模塊程序中,也可用在程序窗體的通用聲明部分,這時(shí)應(yīng)將函數(shù)定義中的Public改成Private,將常數(shù)定義中的Public刪除。
(2)?SND_LOOP標(biāo)識(shí)通常需要同SND_ASYNC共同使用,即在兩個(gè)標(biāo)識(shí)之間添加“and”符號(hào),以免在對(duì)WAV文件進(jìn)行播放的時(shí)候?qū)⑾到y(tǒng)掛起。
下面介紹使用API函數(shù)mciExecute播放MIDI音樂(lè)的方法。首先在程序窗體的通用聲明部分或標(biāo)準(zhǔn)模塊中添加如下聲明語(yǔ)句:
mciExecute函數(shù)只需要一個(gè)參數(shù)lpstrCommand,它是一個(gè)命令字符串,用于指明播放聲音文件的命令。例如,希望從頭到尾完整地播放CANYON.MID音樂(lè)文件,則該字符串就是“playC:\WINDOWS\MEDIA\CANYON.MID”,其中play為命令,C:\WINDOWS\MEDIA\CANYON.MID為音樂(lè)文件的路徑以及文件名稱,如下所示:
DimTempAsLong
Temp=mciExecute(“play
C:\WINDOWS\MEDIA\CANYON.MID")如果希望對(duì)聲音文件的某一部分進(jìn)行播放,則可以使用from..to..?播放區(qū)間子句來(lái)控制播放區(qū)間。例如,若要播放CANYON.MID文件的5~15秒的區(qū)間,則可以使用如下的語(yǔ)句:
mciExecute函數(shù)也可以用來(lái)對(duì)WAV文件進(jìn)行播放,方法同上。下面給出使用API函數(shù)sndPlaySound及mciExecute播放聲音的完整程序,程序界面如圖6-3所示。圖6-3使用API函數(shù)播放音樂(lè)控件設(shè)計(jì)
通過(guò)按下F5鍵來(lái)執(zhí)行樣例程序。如圖6-4所示,單擊“sndPlaySound播放”命令按鈕,則使用sndPlaySound函數(shù)來(lái)播放C:\WINDOWS\MEDIA目錄下的TADA.WAV聲音文件;單擊“mciExecute播放”命令按鈕,則使用mciExecute函數(shù)來(lái)播放C:\WINDOWS\MEDIA目錄下的CANYON.MID文件的5~15秒的部分。
下面我們結(jié)合實(shí)例介紹如何使用API多媒體函數(shù)mciSendString來(lái)播放CD音樂(lè),如圖6-5所示。圖6-4單擊“sndPlaySound播放”按鈕,則使用sndPlaySound函數(shù)播放聲音文件圖6-5播放CD控件設(shè)計(jì)
程序運(yùn)行后,先插入CD光盤(pán),然后單擊“播放CD第一首歌”命令按鈕,就可聽(tīng)到該CD的第一首歌了。
總的說(shuō)來(lái),以上四種方法的復(fù)雜程度及對(duì)系統(tǒng)的要求和消耗的系統(tǒng)資源各有不同。因而,作為一個(gè)VB程序員,在編寫(xiě)程序時(shí)應(yīng)能熟練而準(zhǔn)確地使用上述四種方法,并能在一定的場(chǎng)合選擇恰當(dāng)?shù)囊环N方法,從而為自己的程序增添效果。
MP3自問(wèn)世以來(lái),因其聲音還原好、壓縮比率高而深受歡迎,將MP3使用在多媒體應(yīng)用軟件中會(huì)大大減少存儲(chǔ)空間。那么,怎樣在自己的應(yīng)用程序中播放MP3文件呢?實(shí)際上,使用ActiveX控件mp3play.ocx(一個(gè)播放MP3文件的控件,可在網(wǎng)上下載)就可以在VB中很容易地實(shí)現(xiàn)MP3文件的播放。下面介紹該控件的使用方法。
(1)新建一個(gè)工程。單擊“工程”\“部件”菜單,在出現(xiàn)的控件對(duì)話框中選中“Dialog-MedieaMp3PlayActiveXControl”,將Mp3Play.ocx控件添加到VB的工具箱中。此時(shí),在工具箱中可以看到新增加了一個(gè)藍(lán)色小喇叭圖標(biāo),這就是mp3play.ocx控件。6.2MP3的播放方法
(2)單擊工具箱中的MP3控件,將其添加到窗體中,名稱設(shè)為MP3Play1,屬性Visible設(shè)為False。
(3)在窗體中添加“播放”命令按鈕,其名稱為command1,屬性Caption為“播放MP3”。在其Click事件中填寫(xiě)以下代碼:
在窗體中添加“停止播放”命令按鈕,其名稱為command2,屬性Caption為“停止播放”。在其Click事件中填寫(xiě)以下代碼:
程序執(zhí)行后,單擊“播放MP3”按鈕,將播放所指定的MP3音樂(lè)。若要停止,單擊“停止播放”按鈕即可。上面介紹了播放MP3文件的一個(gè)簡(jiǎn)單例子。在這個(gè)例子中,我們使用了Mp3Play.ocx控件的三個(gè)最常用的方法Mp3Play1.Open、Mp3Play1.Play及Mp3Play1.Stop。下面進(jìn)一步介紹Mp3Play.ocx控件的常用方法和屬性。
Authorize(Name,Password)方法:輸入認(rèn)證的名字及密碼,否則,只能播放30秒。如果輸入正確,則返回0;否則返回5。調(diào)用方法如下:
ReturnValue=Mp3Play1.Authorize("Password","Keyword")
Open(Inputfile,Outputfile)方法:打開(kāi)MP3聲音文件。如果僅僅是播放MP3,則Outputfile輸出文件應(yīng)為空(“”);如果要輸出波形文件,則outputfile(輸出文件)應(yīng)為波形文件名。如果執(zhí)行成功,則返回0;否則返回錯(cuò)號(hào)。調(diào)用方法如下:
ReturnValue=Mp3Play1.Open(“C:\Song.mp3”,“”)
或
ReturnValue=Mp3Play1.Open(“C:\Song.mp3”,“C:\Song.wav”)
Close方法:關(guān)閉MP3文件。
GetVolumeLeft,GetVolumeRight屬性:返回系統(tǒng)的音量大小,長(zhǎng)整型(long0~65?536)。
GetVolumeLeftP,GetVolumeRightP屬性:返回系統(tǒng)音量的百分比(0~100)。
GetWaveLengthSecs屬性:返回聲音文件總的播放時(shí)間長(zhǎng)度(秒)。
SetVolume方法:設(shè)置系統(tǒng)的左右音量值(long0~65?536)。調(diào)用方法如下:
ReturnValue=Mp3Play1.SetVolume(32768,32768)
Pause方法:暫停(一次暫停,二次播放)。
Play方法:播放。如果成功,則返回0。
PlayFromToS(SecondA,SecondB)方法:從開(kāi)始SecondA播放聲音文件到SecondB。最大的SecondB可以從屬性GetWaveLengthSecs中得到。如果運(yùn)行成功,則返回0。
Stop方法:停止播放聲音文件和編碼(decoding)。如果執(zhí)行成功,則返回0。
只要我們靈活運(yùn)用如上所述的方法和屬性,就不難設(shè)計(jì)出屬于自己的“MP3播放程序”。下面給出一個(gè)完整的“MP3播放程序”,從程序中可以清楚地看到Mp3Play.ocx控件的方法和屬性的運(yùn)用情況。
窗體中各控件的布局如圖6-6所示。其中Mp3Play控件為MP3播放控件,Mp3Enc控件為MP3編碼控件。圖6-6窗體中各控件的布局
程序運(yùn)行后,單擊“打開(kāi)”按鈕,選定要播放的Mp3文件,再單擊“播放”按鈕,就可以聽(tīng)到美妙的Mp3音樂(lè)了(見(jiàn)圖6-7)。圖6-7Mp3Player6.3.1聲音點(diǎn)播機(jī)
在進(jìn)行多媒體應(yīng)用軟件的開(kāi)發(fā)時(shí),經(jīng)常會(huì)用到后綴名為?.MID和?.WAV的聲音和音樂(lè)文件。為了選擇這些聲音或音樂(lè)文件,一般是用Windows附件中的媒體播放器逐次地打開(kāi)它們,操作起來(lái)十分繁瑣。下面的程序是一個(gè)“聲音點(diǎn)播機(jī)”,界面美觀,操作快捷高效,用鼠標(biāo)單擊文件名即可播放(見(jiàn)圖6-8)。6.3兩個(gè)實(shí)例圖6-8聲音點(diǎn)播機(jī)控件設(shè)計(jì)圖6-9聲音點(diǎn)播機(jī)的設(shè)計(jì)結(jié)果6.3.2播放資源文件中的WAV聲音
VB提供的方法可使我們很容易地使用資源文件中的字符、圖片等。我們可以用
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025項(xiàng)目法律服務(wù)合同
- 2023八年級(jí)英語(yǔ)下冊(cè) Unit 4 Why don't you talk to your parents Section A 第1課時(shí)(1a-2d)說(shuō)課稿 (新版)人教新目標(biāo)版
- 7多元文化 多樣魅力《多彩的世界文化》(說(shuō)課稿)-統(tǒng)編版道德與法治六年級(jí)下冊(cè)
- 2025合同模板承包合同書(shū)(車(chē)輛)范本
- 2025中外合資公司勞動(dòng)合同協(xié)議書(shū)
- 直飲水施工方案
- 食堂餐廳售賣(mài)設(shè)備施工方案
- 2024年春七年級(jí)語(yǔ)文下冊(cè) 第4單元 13 葉圣陶先生二三事說(shuō)課稿 新人教版
- 《1 信息并不神秘》說(shuō)課稿-2023-2024學(xué)年華中師大版信息技術(shù)三年級(jí)上冊(cè)
- Unit 2 Expressing yourself Part A Lets spell(說(shuō)課稿)-2024-2025學(xué)年人教PEP版(2024)英語(yǔ)三年級(jí)下冊(cè)001
- 如何當(dāng)好學(xué)校的中層干部
- SWITCH塞爾達(dá)傳說(shuō)曠野之息-1.6金手指127項(xiàng)修改使用說(shuō)明教程
- 2022-2023學(xué)年廣東省佛山市順德區(qū)高三(下)模擬英語(yǔ)試卷
- 節(jié)后復(fù)工培訓(xùn)內(nèi)容五篇
- GB/T 33322-2016橡膠增塑劑芳香基礦物油
- GA 1051-2013槍支彈藥專(zhuān)用保險(xiǎn)柜
- 某水毀公路維修工程施工方案
- 家庭病房工作制度和人員職責(zé)
- 建設(shè)工程監(jiān)理合同示范文本GF-2018-0202
- 2022質(zhì)檢年終工作總結(jié)5篇
- 江蘇省中等職業(yè)學(xué)校學(xué)業(yè)水平考試商務(wù)營(yíng)銷(xiāo)類(lèi)(營(yíng)銷(xiāo)方向)技能考試測(cè)試題
評(píng)論
0/150
提交評(píng)論