標(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è)定音量,.十分方便。
你可以到下載最新的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ī)則窗口和很多的新奇效果。你可以到去下載試用,最新版本為V3.35。