2012-10-15 195 views
0

我跟着諾基亞的維基關於使用J2Me創建視頻播放器。一般來說,代碼是這樣的J2ME RTSP視頻流,但沒有音頻

player = Manager.createPlayer("rtsp://v1.cache5.c.youtube.com/CjYLENy73wIaLQm8E_KpEOI9cxMYDSANFEIJbXYtZ29vZ2xlSARSBXdhdGNoYLm0hv_ig5HRTww=/0/0/0/video.3gp");    

        //A player listener is needed so that we know, when the video has reached the END_OF_MEDIA position 
      player.addPlayerListener(this); 
      player.realize(); 
      player.prefetch(); 

      //The duration of the video 
      duration = player.getDuration(); 

      //The video control instance is created and attached to this Canvas in Full SCreen mode 
      vc = (VideoControl)player.getControl("VideoControl"); 

      voc = (VolumeControl)player.getControl("VolumeControl"); 
      voc.setLevel(100); 
      voc.setMute(false); 


      vc.initDisplayMode(VideoControl.USE_DIRECT_VIDEO, this); 
      vc.setDisplaySize(240, 196); 
      //vc.setDisplayFullScreen(true); 

      vc.setVisible(true); 





      // vc.setDisplayFullScreen(true); 
      //next time the above operations will be skipped 
      firstPlay = false; 

      //A new thread handles the move of the cursor while the video progresses. 
      //The thread is distroyed when the video is stopped. 
      thread = new Thread(this); 
      thread.start(); 

目前我對諾基亞311阿莎開發如果我剛打開的rtsp地址,瀏覽器通過本地視頻播放器會彈出並流與音頻視頻,以及與此代碼視頻流順暢,但沒有聲音。

我做錯了什麼?感謝您的幫助

問候

回答

0

來觀看播放YouTube視頻,你可以使用下面的代碼:

import javax.microedition.lcdui.*; 
import javax.microedition.midlet.*; 
import javax.microedition.media.*; 
import javax.microedition.media.control.VideoControl; 

public class RTSPFullScreen extends MIDlet implements CommandListener, PlayerListener { 

    private Display d; 
    private Player p; 
    private Canvas c; 
    private Command exitCommand = new Command("Exit", Command.EXIT, 1); 
    VideoControl vc; 

    public RTSPFullScreen() { 

     d = Display.getDisplay(this); 


    } 

    public void startApp() { 
     c = new Canvas() { 

      protected void paint(Graphics g) { 

       g.setColor(0, 0, 0); 
       g.fillRect(0, 0, getWidth(), getHeight()); 


      } 
     }; 

     c.setFullScreenMode(true); 
     c.addCommand(exitCommand); 
     c.setCommandListener(this); 
     d.setCurrent(c); 




     try { 
      p = Manager.createPlayer("rtsp://v1.cache5.c.youtube.com/CjYLENy73wIaLQm8E_KpEOI9cxMYDSANFEIJbXYtZ29vZ2xlSARSBXdhdGNoYLm0hv_ig5HRTww=/0/0/0/video.3gp"); 


      p.addPlayerListener(this); 
      p.start(); 

      vc = (VideoControl) p.getControl("javax.microedition.media.control.VideoControl"); 
      vc.initDisplayMode(VideoControl.USE_DIRECT_VIDEO, c); 



     } catch (Exception e) { 
      showAlert("startApp: " + e.toString()); 
     } 
    } 

    public void commandAction(Command c, Displayable s) { 
     if (c == exitCommand) { 
      destroyApp(false); 
      notifyDestroyed(); 
     } 
    } 

    public void pauseApp() { 
    } 

    public void destroyApp(boolean uc) { 
     if (p != null) { 
      p.close(); 
     } 
    } 

    public void playerUpdate(Player player, java.lang.String event, java.lang.Object eventData) { 
     if (player.getState() == Player.STARTED) { 

      try { 

       vc.setDisplayFullScreen(true); 
       vc.setVisible(true); 
      } catch (Exception e) { 
       showAlert("playerUpdate: " + e.toString()); 
      } 
     } 

    } 

    public void showAlert(String aAlertText) { 
     Alert alert = new Alert("Alert", aAlertText, null, AlertType.ERROR); 
     alert.setTimeout(10000); 
     d.setCurrent(alert); 
    } 
}