sp.realize()方法执行时如何关闭流媒体播放器屏幕

时间:2011-10-15 07:13:52

标签: blackberry java-me

我已阅读知识库文章“Streaming media - Start to finish”它工作正常。当我点击打开的视频时,播放器屏幕打开。当我在实现播放器之前单击后退按钮时,它不会返回到右侧屏幕。

当sp.realize();执行用户的方法无法返回屏幕。

加载播放器后。它很接近。

如果sp.realize()方法仍在执行,如何返回屏幕?

new Thread(new Runnable() 
        {
            public void run() 
            {
                try
                {
                    if(sp==null)
                    {                       
                        sp = new StreamingPlayer(url, contentType);                     
                        sp.setBufferCapacity(bufferCapacity);                       
                        sp.setInitialBuffer(initBuffer);
                        sp.setRestartThreshold(restartThreshold);
                        sp.setBufferLeakSize(bufferLeakSize);
                        sp.setConnectionTimeout(connectionTimeout);
                        sp.setLogLevel(logLevel);
                        sp.enableLogging(eventLogEnabled, sdLogEnabled);                    
                        sp.addStreamingPlayerListener(playerScreen);

                        sp.realize();
                        volC = (VolumeControl)sp.getControl("VolumeControl");
                        if(contentType.toLowerCase().indexOf("video")!=-1)
                        {
                            vidC = (VideoControl)sp.getControl("VideoControl");                 
                            videoField = (Field)vidC.initDisplayMode(VideoControl.USE_GUI_PRIMITIVE, "net.rim.device.api.ui.Field");
                            vidC.setDisplaySize(Display.getWidth(), Display.getHeight()-timeSeeker.getHeight()-byteSeeker.getHeight());
                            UiApplication.getUiApplication().invokeLater(new Runnable()
                            {
                                public void run()
                                {
                                    replace(getField(0), videoField);                                   
                                }
                            });
                            vidC.setVisible(true);
                        }
                        if(contentType.toLowerCase().indexOf("audio")!=-1)
                        {
                            audioIcon = true;
                            if(!(getField(0)==albumArt))
                            {
                                UiApplication.getUiApplication().invokeLater(new Runnable(){
                                    public void run()
                                    {
                                        replace(videoField, (Field)albumArt);
                                    } 
                                });                             
                            }
                        }                       
                        sp.start();                                             
                    } 
                    else
                    {
                        sp.stop();
                        sp.close();
                        sp = null;
                        run();
                    }

                } catch(Throwable t)
                {
                    //log(t.toString());
                }
            }
        }).start();

1 个答案:

答案 0 :(得分:0)

我不确定你到底是什么意思。但是,您是否尝试在单独的线程中运行音频内容?这应该会降低它干扰其他任何事情的可能性。