2011-08-11 296 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