2012-08-27 4 views
1

rtsp URL을 사용하여 video streaming in java me를 구현하고 싶습니다. 장치의 코드를 테스트 할 때 Prefetch Error-33이라는 미디어 예외가 발생합니다. 여기에 내 코드rtsp를 사용하여 자바에서 비디오 스트리밍 구현

나는 또한 비디오 파일을 재생 장치의 기본 내부 플레이어를 호출 MIDlet.platformrequest (에서는 videoURL) 메소드를 사용하는 다른 방법을 사용하여 시도했다
private void startStreaming() 
    { 
     try 
     { 
     mplayer=Manager.createPlayer(videourl); 

     mplayer.addPlayerListener(this); 

     mplayer.realize(); 

     videoControl=(VideoControl) mplayer.getControl("VideoControl"); 

     if(videoControl!=null) 
     { 
      Item video=(Item) videoControl.initDisplayMode(videoControl.USE_GUI_PRIMITIVE, null); 

      videoControl.setVisible(true); 

      System.out.println("Playing"); 

      Form v=new Form("Playing Video"); 

      StringItem si=new StringItem("Status", "Playing...."); 

      v.append(video); 

      display.setCurrent(v); 
     } 

     mplayer.prefetch(); 

     mplayer.start(); 
    } 

    catch(Exception noCanDo) 
    { 
     Form f=new Form("Error"); 

     f.append("Error : "+noCanDo); 

     display.setCurrent(f); 
    } 
} 

입니다. 플레이어가 시작되었지만 나중에 connection timeout 프롬프트가 발생합니다. 그러나 나는 rtsp url을 테스트 해봤지만 대단히 잘 작동한다. 어떤 제안을 어떻게 비디오를 자바에서 rtsp URL을 사용하여 스트리밍 할 수 있습니까?

+0

을 위해 일해야합니까? – String

+0

j2me에서 스트리밍 RTSP에 대한 노키아 개발자 포럼 위키 기사를 사용하십시오. 노키아 심비안 벨 SDK 1.1 및 노키아 SDK 2.0에서 작동해야합니다. http://www.developer.nokia.com/Community/Wiki/How_to_play_video_streaming_in_Java_ME – String

답변

0

사용 RTSP를 streamin이 코드는 u를 사용하는 에뮬레이터 R 노키아 심비안 미인 SDK 1.1과 노키아 SDK 2.0

protected void startApp() throws MIDletStateChangeException { 
     VideoCanvas VC = new VideoCanvas(this,url); 
     Display.getDisplay(this).setCurrent(VC); } 

    } 
    //videoCanvas Class 

    public VideoCanvas(ExampleStreamingMIDlet midlet, String url) { 
      this.midlet = midlet; 
      this.url = url; 
      addCommand(start); 
      addCommand(stop); 
      addCommand(back); 
      addCommand(exit); 
      setCommandListener(this); 
      this.setFullScreenMode(true); 
     } 

    public void commandAction(Command c, Displayable arg1) { 
      if(c == start) { 
       start(); 
      } 




    public void start() { 
      try{ 

       Player player = Manager.createPlayer(url); 
       player.addPlayerListener(this); 
       player.realize(); 


       control = (VideoControl)player.getControl("VideoControl"); 
       if (control != null) { 
        control.initDisplayMode(VideoControl.USE_DIRECT_VIDEO,this); 
        control.setDisplaySize(176,144); 
        int width = control.getSourceWidth(); 
        int height = control.getSourceHeight(); 
        status2 = "Before: SW=" + width + "-SH=" + height + "-DW=" + control.getDisplayWidth() + "-DH=" + control.getDisplayHeight(); 
       } 

       player.start(); 
      } 
      catch(Exception e) { 
       Alert erro = new Alert("Erro",e.getMessage(),null,AlertType.ERROR); 
       Display.getDisplay(midlet).setCurrent(erro); 
      } 
     } 

    public void stop() { 
      if(player != null) { 
       player.deallocate(); 
       player.close(); 
      } 
     } 
+0

감사합니다. 사용 해보았습니다. 그러나 프리 페치 오류가있는 미디어 예외가 발생합니다. –

+0

어떤 에뮬레이터를 사용하고 있습니까? – String

+0

나는 실제 장치, 노키아 E71 및 몇 가지 소니 에릭슨 휴대폰에서 테스트했지만 동일한 결과를 얻고 있습니다. –