j2me播放视频

时间:2011-08-11 07:37:18

标签: java video java-me

播放器不播放存储在项目中的视频(res和src中的文件)

public class videoplayer extends MIDlet {
       Display display;
       Player player;

       public videoplayer() {
          try{
                display = Display.getDisplay(this);
                InputStream is =getClass().getResourceAsStream("/a1.mpg");
                player = Manager.createPlayer(is,"video/mpeg");

          }catch(Exception e)
          {
            e.printStackTrace();
          }
       }

       protected void startApp() {        
           try {
                 VideoControl vc;
                 player.realize();
                 vc = (VideoControl)player.getControl("VideoControl");
                 if(vc != null) {
                    Item video = (Item)vc.initDisplayMode(vc.USE_GUI_PRIMITIVE, null);
                    Form v = new Form("Playing Video...");
                    v.append(video);
                    display.setCurrent(v);
                 }
                 player.prefetch();
                 player.start();
              }
          catch(Exception e)
          {
              e.printStackTrace();
          }

       }

但它在运行时显示以下异常。我通过在res和src中存储文件来尝试此代码,但同样例外。

java.lang.IllegalArgumentException
 - javax.microedition.media.Manager.createPlayer(), bci=8
 - videoplayer.videoplayer.<init>(), bci=25
 - java.lang.Class.newInstance(), bci=0
 - com.sun.midp.main.CldcMIDletLoader.newInstance(), bci=46
 - com.sun.midp.midlet.MIDletStateHandler.createMIDlet(), bci=66
 - com.sun.midp.midlet.MIDletStateHandler.createAndRegisterMIDlet(), bci=17
 - com.sun.midp.midlet.MIDletStateHandler.startSuite(), bci=27
 - com.sun.midp.main.AbstractMIDletSuiteLoader.startSuite(), bci=52
 - com.sun.midp.main.CldcMIDletSuiteLoader.startSuite(), bci=8
 - com.sun.midp.main.AbstractMIDletSuiteLoader.runMIDletSuite(), bci=161
 - com.sun.midp.main.AppIsolateMIDletSuiteLoader.main(), bci=26
java.lang.NullPointerException:   0
 - videoplayer.videoplayer.startApp(), bci=4
 - javax.microedition.midlet.MIDletTunnelImpl.callStartApp(), bci=1
 - com.sun.midp.midlet.MIDletPeer.startApp(), bci=7
 - com.sun.midp.midlet.MIDletStateHandler.startSuite(), bci=269
 - com.sun.midp.main.AbstractMIDletSuiteLoader.startSuite(), bci=52
 - com.sun.midp.main.CldcMIDletSuiteLoader.startSuite(), bci=8
 - com.sun.midp.main.AbstractMIDletSuiteLoader.runMIDletSuite(), bci=161
 - com.sun.midp.main.AppIsolateMIDletSuiteLoader.main(), bci=26

编辑:目录结构

enter image description here

2 个答案:

答案 0 :(得分:2)

在文件路径前尝试使用前缀file://

答案 1 :(得分:2)

将文件放入res并将res放在src

所以它应该是

src \ res

并在代码中

InputStream is =getClass().getResourceAsStream("res/a1.mpg")
第二期

更新

转到

  

/runtimes/cldc-hi/bin/jwc_properties.ini

找到属性system.jam_space提高其值