2011-08-11 129 views
0

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

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

+0

和你去哪里放置文件? –

+0

@Jigar Joshi尝试将其放置在“res”文件夹中,并将其移动到“src”文件夹中,但结果相同 – ArK

+0

您可以添加目录中的文件的目录结构和位置,而不是源文件。 –

回答

2

将文件放入res并把ressrc

所以在它应该是

src \ res

,并在代码

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

更新关于你的第二个问题

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

找物业system.jam_space提高对其价值

+0

ya异常已清除,但显示“***错误*** 从http://127.0.0.1:5101/videoplayer1.jad部署应用程序时发生问题 原因: 有是存储不足以安装此套件“ – ArK

+0

似乎你双复制文件。或文件大小对于模拟器/手机来说太大 –

+0

不仅单个副本存在,而且已经删除src之外的res文件夹。并且文件大小小于1 Mb(612 kb) – ArK

2

尝试与该文件路径前的前缀file://

+0

您的意思是file://a1.mpg。如果是这样,它也会导致相同的异常 – ArK

+0

它应该是'file:/// a1.mpg','file://'是“协议”并且'/ a1.mpg'是路径。 – mdelolmo

+0

谢谢mdelomo,但它没有解决同样的例外 – ArK