[j2me]利用JLayerME-CLDC0.2播放MP3的试验[1]

有一个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:

https://files.cnblogs.com/zhengyun_ustc/JLayerMp3MIdlet.rar

在你的WTK2.2的模拟器上跑时,记得先:

Modify KToolbar preferences to have 16000 KB heap size and VM speed emulation disabled.

posted @   老兵笔记  阅读(1913)  评论(4编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示