有一個JLayerME-CLDC0.2,專門是用來在CLDC1.0/MIDP2.0上播放MP3文件以及獲取mp3文件的位速/采樣率的。
JLayerME是自己做解碼器解析MP3格式,然後自行轉換為wav格式,這個格式是真機都支持的,然後再讓Manager.createPlayer進行播放。
所以非常消耗資源。
他們開發者也說,現在的JLayerME-CLDC0.2還不是一個產品。
這個項目在:
Project Homepage :
http://www.Javazoom.Net/javalayer/Javalayerme.Html
Java and MP3 online Forums :
http://www.Javazoom.Net/services/forums/index.JSP
我在eclipse上可以跑成功,但是傳到Nokia真機上就沒反應。用Nokia的S60模擬器看,則報告下面的錯誤,我已經將模擬器的Java heap size設置為了16MB:
MMA : Exception during remote invocation
Cannot open the file with the Mp3ToWav datasource!null/class Javax.microedition.media.MediaException
不過,對於資源中的mp3,Nokia S60模擬器也能夠讓JLayerME獲取mp3的屬性,如下debug信息所示:
-- Mp3Decoder Comments -- Parse Locator : /res/test.mp3
-- Mp3Decoder Comments -- Create decoder and connect the dataSource (Push the wav header)
-- Mp3Decoder Comments -- WAV Stream mode : Frequency: 48000,Channels: 2
Enter createHeader
Generate the WAV header:okay
哪位有興趣不妨試驗看看。
你可以下載我的代碼,導入到eclipse:
http://files.cnblogs.com/zhengyun_ustc/JLayerMp3MIdlet.rar
在你的WTK2.2的模擬器上跑時,記得先:
Modify KToolbar preferences to have 16000 KB heap size and VM speed emulation disabled.