在我的应用程序中,我将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);
}
});
}
答案 0 :(得分:0)
没关系。得到了解决。事实证明,我试图从网页访问的视频格式不兼容,因此引发了错误并冻结了媒体播放器。