在上一講中我們講述的是如何制作java手機(jī)多媒體功能中的動(dòng)畫(huà),本講中我們將介紹如何制作JAVA手機(jī)的另一個(gè)多媒體功能——聲音,即N800的音樂(lè)播放功能。若是在動(dòng)畫(huà)上再配以音樂(lè)播放功能,就能制作出具有豐富表現(xiàn)力的應(yīng)用程序了。
現(xiàn)在我們利用MIDP應(yīng)用程序播放音樂(lè)。但是, MIDP標(biāo)準(zhǔn)API不支持聲音播放功能。機(jī)種不同,則聲音播放方法也不同,所以每個(gè)廠商都會(huì)使用他們各自擴(kuò)展的API 。N800使用NEC擴(kuò)展的API,所以能用MIDP應(yīng)用程序播放聲音。
N800只能播放SMF(format 0)格式的音樂(lè)數(shù)據(jù),最大文件尺寸為10Kbyte。SMF格式即Standard MIDI File 的縮略語(yǔ),就是為了能實(shí)現(xiàn)互換性而設(shè)定的文件形式,互換性是指在不同的應(yīng)用程序中也具有能處理數(shù)據(jù)的特性。SMF分為format0和format1兩種格式。N800所采用的是format0格式。這兩種格式具有以下不同特點(diǎn)。(表 1)
format0 Midi的16頻聲音收錄在1個(gè)磁道上的形式format1
不限制磁道數(shù)量的形式接下來(lái)我們實(shí)際操作讀取文件播放音樂(lè)的功能。
利用擴(kuò)展API上的Media類(lèi)的static方法讀取音樂(lè)數(shù)據(jù)。自變量中記述了音樂(lè)數(shù)據(jù)文件的通過(guò)。AudioClip audio = Media.getAudioClip(“/test.mid”);
另外,能夠從web上獲得音樂(lè)數(shù),并且能夠從RMS中得到音樂(lè)數(shù)據(jù)。但,由于形式相同,這里就不非凡講述了。具體情況請(qǐng)參考擴(kuò)展API文檔。
播放讀取的音樂(lè)數(shù)據(jù)。使用AudioClip例子(在這稱為audio)play方法播放。
audio.play();
而且也能同時(shí)播放兩個(gè)以上的音樂(lè)數(shù)據(jù)。此時(shí),使用AudioClip例子(在這稱為audio1、audio2)play方法播放。
audio1.play();
audio2.play();
上述情況下能夠同時(shí)播放audio1,audio2。
能夠暫停音樂(lè)的播放。使用AudioClip例子的stop方法能夠停止。
audio.stop();
AudioClip定義了讀取其他音樂(lè)數(shù)據(jù)信息的方法和決定反復(fù)播放次數(shù)的方法。(表 2)
getChannel() 取得音樂(lè)數(shù)據(jù)的頻數(shù)
getLapsedTime()
以MS為單位取得所演奏的音樂(lè)數(shù)據(jù)的播放時(shí)間getTempo()
取得音樂(lè)數(shù)據(jù)的速度getTime()
取得音樂(lè)數(shù)據(jù)的播放時(shí)間setLoopCount(int count)
設(shè)定演奏的音樂(lè)數(shù)據(jù)的反復(fù)播放次數(shù)音頻演奏過(guò)程中,演奏開(kāi)始時(shí)、停止時(shí)、結(jié)束時(shí)都會(huì)發(fā)生音頻事件,能定義此時(shí)的處理。要定義音頻事件發(fā)生時(shí)的處理,有必要安裝AudioListener接口和記述audioAction方法內(nèi)的處理。
然后,使用AudioClip對(duì)象的addAudioListener方法進(jìn)入AudioListener。
記述處理的audioAction方法的自變量如下所示。
AudioClip sound 傳遞事件發(fā)生來(lái)源的對(duì)象
int event
傳遞事件的種類(lèi)int param
傳遞事件的參數(shù)。由于事件不同,則參數(shù)的意思也不同。不包含參數(shù)的事件的情況下,只傳遞0此外,事件的種類(lèi)(audioAction方法的自變量、事件)在AudioListener接口文件夾中定義如下。(表 4)
static int AUDIO_COMPLETE 表示音樂(lè)播放結(jié)束static int AUDIO_STARTED 表示音樂(lè)播放開(kāi)始static int AUDIO_COMPLETE 表示音樂(lè)播放停止
以下展示的是只播放音頻數(shù)據(jù)的簡(jiǎn)單范例。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注