Как закрыть экран плеера при выполнении метода sp.realize () - PullRequest
1 голос
/ 15 октября 2011

Я прочитал статью базы знаний " Потоковое мультимедиа - от начала до конца " Работает нормально.Когда я нажимаю на открытое видео, открывается экран проигрывателя.Когда я нажимаю кнопку «Назад» до того, как игрок понял, он не возвращается к правому экрану.

когда 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 голосов
/ 23 ноября 2011

Я не совсем уверен, что вы имеете в виду под этим.Тем не менее, вы пытались запустить аудио материал в отдельном потоке?Это должно снизить вероятность того, что оно будет мешать чему-либо еще.

...