2014-01-12 41 views
0

我已經下載的代碼 - Experiments in Streaming Content in Java ME by Vikram Goyal無法創建的MediaPlayer

但是,試圖運行該應用程序,用模擬器,運行達爾文流服務器 我碰到下面的錯誤後,當 -

Midlet->startApp 
StreamingDataSource->StreamingDataSource 
StreamingDataSource->getContentType 
StreamingDataSource->getLocator (locator = rtsp://127.0.0.1/sample_100kbit.avi) 
javax.microedition.media.MediaException: Player cannot be created for video/avi 
    at javax.microedition.media.Manager.createPlayer(), bci=135 
- com.iprs.test.Midlet.startApp(Midlet.java:14) 
    at javax.microedition.midlet.MIDletTunnelImpl.callStartApp(), bci=1 
    at com.sun.midp.midlet.MIDletPeer.startApp(), bci=5 
    at com.sun.midp.midlet.MIDletStateHandler.startSuite(), bci=261 
    at com.sun.midp.main.AbstractMIDletSuiteLoader.startSuite(), bci=38 
    at com.sun.midp.main.CldcMIDletSuiteLoader.startSuite(), bci=5 
    at com.sun.midp.main.AbstractMIDletSuiteLoader.runMIDletSuite(), bci=144 
    at com.sun.midp.main.AppIsolateMIDletSuiteLoader.main(), bci=26 
Midlet->destroyApp 

這是的startApp方法 -

public void startApp() { 
    try { 
     System.out.println("Midlet->startApp"); 
     // create Player instance, realize it and then try to start it 
     Player player = Manager.createPlayer(new StreamingDataSource("rtsp://127.0.0.1/sample_100kbit.avi")); //(new StreamingDataSource("rtsp://localhost:554/tuner1.wav")); //sample.mp3")); //sample_100kbit.mp4")); 
      player.realize(); 
      player.start(); 
    } catch(Exception e) { 
      e.printStackTrace(); 
    } 
} 

我曾與一些媒體類型的嘗試,但我得到了錯誤。 如何解決? 謝謝, Eyal。

回答

2

的IP地址127.0.0.1始終指向你使用的設備。所以在MIDlet中使用時,它指向運行MIDlet的手機。換句話說,你正嘗試將文件從手機傳輸到手機。

這當然不行,因爲你沒有在手機上運行的網絡服務器。

要使其工作,你應該找出正確的IP地址到你的服務器。

如果您的手機通過WiFi連接,你可以最有可能使用本地IP,例如10.0.0.X或192.168.0.X

如果你的手機通過GPRS或3G連接,你需要找出您的臺式電腦在互聯網上的IP,使用諸如www.whatismyip.com 之類的服務之後,您必須確保您的服務器可以訪問。換句話說,請確保您的路由器允許RTSP協議使用的特定端口上的流量,並將該端口上的流量引導至您的服務器。

把它一步一步的時候,它可能是谷歌現有的RTSP流是一個好主意,並嘗試那些先出來。這樣你就會知道你的JavaME代碼工作正常。

至於我記得,打RTSP用的JavaME(至少在較新的手機)流是相當直截了當雖然。應該與標準播放器一起運行,不需要額外的類。

看到這個:J2ME/StreamingMedia.htm「> http://www.java2s.com/Tutorial/Java/0430_J2ME/StreamingMedia.htm

你也應該能夠測試是否一定RTSP飼料工作時,只需輸入網址到您的手機瀏覽器。它應然後啓動手機的默認媒體播放器和播放流。

+0

您好,感謝您回答我使用模擬器運行MIDlet。 – eyal

+0

你與檢查您電腦上的媒體播放器,如果該流將從那裏播放? –