Java me 使用rtsp在javame中实现视频流

Java me 使用rtsp在javame中实现视频流,java-me,video-streaming,rtsp,mmapi,Java Me,Video Streaming,Rtsp,Mmapi,我想使用RTSPURL在java中实现视频流。在设备上测试代码时,我发现媒体异常,说明预回迁错误-33。这是我的密码 private void startStreaming() { try { mplayer=Manager.createPlayer(videourl); mplayer.addPlayerListener(this); mplayer.realize(); video

我想使用RTSPURL在java中实现
视频流。在设备上测试代码时,我发现媒体异常,说明
预回迁错误-33
。这是我的密码

    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);
    }
}

我还尝试了使用MIDlet.platformrequest(videourl)方法的替代方法,该方法调用设备的默认内部播放器来播放视频文件。播放机正在启动,但稍后会出现连接超时提示。然而,我已经测试了RTSPURL,它工作得非常好。关于如何在java me中使用rtsp url进行视频流的任何建议?

将此代码用于流在rtsp中,它应该适用于诺基亚symbian belle 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();
            }
        }

谢谢,我试过了。但是,出现了媒体异常和预取错误。我已经在真实设备、诺基亚E71和几部索尼爱立信手机上进行了测试,但得到了相同的结果。在j2me中使用诺基亚开发者论坛wiki文章来流式传输RTSP,它应该适用于诺基亚symbian belle sdk 1.1和诺基亚sdk 2.0