欢迎指教,tengshiquan@yahoo.com.cn
"write once,run anywhere" 是java的口号,但在j2me平台上做的应用,要想不改动代码就run anywhere,难度是很大的。如果要把一个应用程序做到让大多数的机型都适用,就要考虑到方方面面,其难度是相当大的。
比如给百宝箱做游戏,上线机型大多是midp1。0的机器,感觉移植中最麻烦的还要数声音部分的api,必须根据各个机型来改动。虽然图象还比较容易做成自适应的,但声音部分就一般就只能根据各个机型来改动。
下面提供一种解决方案,可以让j2me程序在运行时自动加载该机型支持的声音资源并用该
机型的声音api来播放。
关键问题: 1。各机型提供的播放音乐的api都有所不同,特别是较老的机型。
需要在运行时根据机型自动加载。
2。各机型支持的声音的资源文件也不同。需要在运行时根据机型自动加载。
3。各机型的jvm不同,多多少少有一些比较特别的bug。
解决方案:
1. 原则:能用标准api就用标准api,不能用的话,就用各个机型自身的api。
// player types
static final int standard = 0; //for midi
static final int nokia = 1; //for ott
static final int samsung = 2; //for mmf
static final int nec = 3; //for midi
static final string[] supportedplayertypes = {
"javax.microedition.media.player", //standard api
"com.nokia.mid.sound.sound", // nokia
"com.samsung.util.audioclip", //samsung
"com.nec.media.audioclip", //nec
};
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器