標(biāo)準(zhǔn)聲音解決方案:.背景midi+前景聲音(一)
背景midi加前景聲音是authorware提供的標(biāo)準(zhǔn)多音同放解決方案,在各種多媒體軟件中使用廣泛,它主要是通過(guò)多媒體函數(shù)接口(mci)來(lái)實(shí)現(xiàn)midi的播放。然而,midi函數(shù)不是authorware自身的標(biāo)準(zhǔn)函數(shù),它是由一個(gè)名為a5wmme.u32的多媒體函數(shù)包提供的。這個(gè)函數(shù)包沒(méi)有包含在authorware 5.0中,你必須到macromedia的網(wǎng)站中去下載它(免費(fèi))。
在midi播放函數(shù)中,最重要的是兩個(gè)函數(shù):midiplay和midiplaying。midiplay函數(shù)用于對(duì)midi進(jìn)行播放,其格式為:
errorcode := midiplay(filename, tempo, wait),其中,filename為要播放的midi文件名;tempo為播放的節(jié)奏,一般為100,即按標(biāo)準(zhǔn)速率播放;wait為0表示作為背景播放(圖標(biāo)繼續(xù)向下執(zhí)行),為1表示作為前景播放(等待播放完畢再向下執(zhí)行)。
midiplaying函數(shù)用于返回midi當(dāng)前的播放狀態(tài),其格式為:
result := midiplaying()
如果返回為0則表示沒(méi)有播放,為1表示正在播放。
在midi播放中一個(gè)頭疼的問(wèn)題是如何實(shí)現(xiàn)midi的循環(huán)播放。單純使用midiplaying()函數(shù),authorware 并不會(huì)對(duì)它響應(yīng),解決的方法是使用系統(tǒng)變量:fulltime。在流程線上加入一個(gè)永久條件響應(yīng)并把條件設(shè)定為midiplaying()+fulltime=0+fulltime,然后在條件分支中加入midi播放圖標(biāo)即可。
quicktime解決方案:.多聲音合成之一
quicktime多音回放方案是authorware提供的另一種聲音解決方案。使用前必須先在windows里加裝quicktime多媒體播放軟件,你可以在apple公司的主頁(yè)去下載,如今廣泛使用的是quicktime v4.1。由于quicktime是mac os下極為重要的多媒體平臺(tái),因此支持的媒體格式特別多樣。從mp3音樂(lè)到mov格式的影像,甚至于連gif格式的動(dòng)畫(huà)圖像和flash動(dòng)畫(huà)都能加以使用。而且,使用mp3等音樂(lè)不受數(shù)目限制,因而使用方便。
authorware中自帶quicktime的接口,可以使用quicktime 3.0及以后的版本,然而為了使用較多的聲音格式(如mp3),應(yīng)當(dāng)使用quicktime 4.0及以后的版本。使用的方法是:通過(guò)authorware的insert選單→media→quicktime 3..即可。要注意的是,authorware v5.1中對(duì)quicktime的支持有問(wèn)題,不能正常播放。解決的方法是把5.0版中xtras目錄下的quicktime目錄拷貝到v5.1相同目錄下覆蓋即可。請(qǐng)注意:使用quicktime后將造成authorware自身的多媒體圖標(biāo)無(wú)效果。
使用quicktime最大的問(wèn)題是對(duì)于各個(gè)音源的音量控制十分不方便,而且在較老的聲卡上,同時(shí)播放兩種音源會(huì)產(chǎn)生間斷性顫音現(xiàn)象,使用尚需改進(jìn)。
directmediaxtra解決方案:多聲音合成之二
directmediaxtra是筆者接觸到的迄今為止最為完善的聲音解決方案。同樣是使用autherware插件接口,directmediaxtra卻提供了近乎完美的支持。它能使用包括mp3在內(nèi)的多種聲音格式,也能播放mpg文件和avi文件。無(wú)論同時(shí)播放幾種聲音和動(dòng)畫(huà),只要你的cpu足夠快,效果都很好。
directmediaxtra是通過(guò)microsoft的direct draw和direct sound功能來(lái)支持聲音和動(dòng)畫(huà)播放的。因此,它不能運(yùn)行在最早的windows 95中。流傳較廣的是directmediaxtra v1.4和v1.5版。1.4版對(duì)于音量的大小控制還不夠完善,必須通過(guò)函數(shù)seticonproperty(@"directmediaxtra", #volume,0)來(lái)設(shè)定。其中,最后的參數(shù)0表示以100%的音量播放。如果覺(jué)得太大,可在-100到0之間變換,變換單位是分貝。1.5版中可以直接通過(guò)滑塊來(lái)設(shè)定音量,.十分方便。
你可以到http://xtras.tabuleiro.com下載最新的directmediaxtra包,安裝在xtras的目錄中即可使用。使用方法是通過(guò)insert選單→tabilero xtras→ directmediaxtra。美中不足的是,要正常使用directmediaxtra必須注冊(cè)。
mjsapi解決方案:背景midi+前景聲音(二)
mjsapi是磨鑒室工作組出品的一個(gè)ucd外部函數(shù)插件,這是一個(gè)國(guó)產(chǎn)軟件。
mjsapi提供對(duì)midi背景音樂(lè)的循環(huán)播放,使用非常方便,而且支持播放midi列表和亂序播放。其格式如下:
m_playmidilooppro(midilistfile,type),其中midilistfile為一個(gè)midi文件的列表,其內(nèi)容是一個(gè)個(gè)的midi文件,每行一個(gè)。type是一個(gè)布爾變量,為false表示順序播放,為ture表示按隨機(jī)次序播放。
如果要停止播放midi,應(yīng)該使用m_stopmidiloop()函數(shù)。
值得一提的是,mjsapi功能極為繁多。用它還可以制造不規(guī)則窗口和很多的新奇效果。你可以到http://wwww.mjssoft.com去下載試用,最新版本為v3.35。
新聞熱點(diǎn)
疑難解答