J2ME程序开发全方位基础讲解汇总[3]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

文件中的声音文件一般是将声音文件处理成流的形式。示例代码:
InputStream is = this.getClass().getResourceAsStream("/Autorun.wav");
其中Autorun.wav文件位于JAR文件的根目录下,如果位于别的目录,需要加上目录名称,如/res /Autorun.wav。

   2、将读取到的内容传递给播放器。

  将流信息传递给播放器,播放器按照一定的格式来进行解码操作,示例代码:
Player player = Manager.createPlayer(is,"audio/x-wav");
  其中第一个参数为流对象,第二个参数为声音文件的格式。

   3、播放声音。

  使用Player对象的start方法,可以将声音播放出来,示例代码:
player.start();
  在播放声音时也可以设定声音播放的次数,可以使用Player类中的setLoopCount方法来实现,具体可查阅API文档。
  下面是在NOKIA S60模拟器中测试通过。代码如下:
package sound;import javax.microedition.midlet.*;import javax.microedition.lcdui.*;import javax.microedition.media.*;import java.io.*;public class SoundMIDlet extends MIDlet {  private Player player = null;  /** Constructor */  public SoundMIDlet() {try{InputStream is = this.getClass().getResourceAsStream("/Autorun.wav");player = Manager.createPlayer(is,"audio/x-wav");}catch(IOException e){System.out.println("1:" + e);}catch(MediaException e){System.out.println("2:" + e);}catch(Exception e){System.out.println("3:" + e);}}/** Main method */public void startApp() {if(player != null){try{     player.start();}catch(MediaException e){     System.out.println("4:" + e);}}}/** Handle pausing the MIDlet */public void pauseApp() {}/** Handle destroying the MIDlet */public void destroyApp(boolean unconditional) {}}

十五、J2ME 3D编程的一些资料

  随着J2ME技术的发展,以及硬件速度的提升,3D游戏程序将慢慢的变成主流,最近想学习这一块的编程,所以收集了一些资料,和大家一起分享:

  1、JSR184
  JSR184是Nokia公司起草的一个关于3D API的规范,下载地址为:
  http://www.forum.nokia.com/main/1,,1_0_10,00.html#jsr184

  2、Nokia的3D编程资料
    http://www.forum.nokia.com/main/1,6566,21,00.html

  3、3D引擎
  一个简单的开放源代码的3D游戏引擎
    http://www.j2me.com.cn/Soft_Show.asp?SoftID=19
  国内一个合作开发3D引擎的项目:
    http://gceclub.sun.com.cn/NASApp/sme/jive/thread.jsp?forum=11&thread=8593

  4、一款3D游戏产品
    http://games.sina.com.cn/newgames/2004/04/040217696.shtml

  5、支持3D的开发工具
  当前一些高端的手机支持3D开发,支持3D开发的开发工具中,通用的有SUN的J2MEWTK2.2。专用的是厂商提高的支持JSR184的SDK。


十六、3D编程??第一个3D程序

  参考WTK2.2提供的demo,完成了第一个3D程序,虽然很简单,而且有些问题还不是很清楚,还是把代码共享出来和愿意学习J2ME 3D编程的朋友一起学习。

  关于代码的编译和运行说明如下:
  1、以下代码在J2ME WTK2.2下面编译通过。
  2、代码分为两个文件:First3DCanvas.java和First3DMIDlet.java。
  3、使用J2ME WTK2.2建立新的工程,主MIDlet类为:first3d. First3DMIDlet
  4、将代码保存在你的工程目录下的first3d目录下。
  5、将J2ME WTK安装目录下的apps\Demo3D\res\com\superscape\m3g\wtksamples\retainedmode\content目录中的swerve.m3g文件复制到你的工程目录下的res目录下。
  6、你的工程建立后,设置工程,通过WTK界面中的“设置”按钮打开设置窗口,在“API选择”中,设置“目标平台”为:自定义;“简档”为“MIDP2.0”;“配置”为“CLDC1.1”;选中“Mobile 3D Graphics for J2ME(JSR184)”。
  7、这样你就可以编译和运行以下代码了。
  源代码如下: 
// First3DMIDlet.javapackage first3d;import javax.microedition.midlet.*;import javax.microedition.lcdui.*;public class First3DMIDlet extends MIDlet {private First3DCanvas displayable = new First3DCanvas();public void startApp() {Display.getDisplay(this).setCurrent(displayable);}public void pauseApp() {}public void destroyApp(boolean unconditional) {}}// First3Dcanvas.javapackage first3d;import javax.microedition.lcdui.*;import javax.microedition.m3g.*;import java.util.*;/*** 第一个3D程序*/public class First3DCanvas extends Canvas implements Runnable {/**World对象*/private World myWorld = null;/**Graphics3D对象*/private Graphics3D g3d = Graphics3D.getInstance();/**Camera对象*/private Camera cam = null;private int viewport_x;private int viewport_y;private int viewport_width;private int viewport_height;private long worldStartTime = 0;//重绘时间private int validity = 0;public First3DCanvas() {//启动重绘界面的线程Thread thread = new

本文关键:J2ME程序开发全方位基础讲解汇总
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top