帮助 - Blackberry Browser Field2,媒体播放器和线程

时间:2011-08-23 15:26:49

标签: blackberry

在我的应用程序中,我将BrowserField2添加到MainScreen和基于流媒体的媒体播放器 - 开始完成。我正在尝试使用扩展的javascript从浏览器打开媒体播放器。我的计划是,当用户点击网页中的某些链接时,我会调用扩展的javascript函数,其中包含一些参数,例如视频的网址流。此功能反过来推动媒体播放器屏幕传递的网址。媒体播放器运行良好,并在单独使用时流式传输视频。但是当使用扩展的javascript与BrowserField结合使用时,它不会播放视频。

我怀疑问题是与Event线程同步或与线程相关。我使用runnable推送包含媒体播放器的屏幕。屏幕显示。但是,当我点击播放按钮(启动一些线程来获取视频并播放它)时,没有任何反应,我的应用程序冻结了。我无法弄清楚确切的问题。如果有人可以指出问题,我们将不胜感激。

谢谢。

一些相关的代码清单如下:

public void extendJavaScript() throws Exception
{        
    ScriptableFunction playVideo = new ScriptableFunction()
    {            
       public Object invoke(Object thiz, Object[] args) throws Exception
       {
          openMediaPlayer(args[0].toString());
          return Boolean.FALSE;
       }
    };
    _bf2.extendScriptEngine("bb.playVideo", playVideo);  
} 

private void openMediaPlayer(final String url){
UiApplication.getUiApplication().invokeAndWait(new Runnable() {

    public void run() {
    PlayerScreen _playerScreen = new PlayerScreen(url + ";deviceside=true");
    UiApplication.getUiApplication().pushScreen(_playerScreen);     
    }
}); 
}

1 个答案:

答案 0 :(得分:0)

没关系。得到了解决。事实证明,我试图从网页访问的视频格式不兼容,因此引发了错误并冻结了媒体播放器。