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