在我的应用程序中,我将BrowserField2添加到基于流媒体的MainScreen和媒体播放器中-从头到尾。我正在尝试使用扩展的javascript从浏览器打开媒体播放器。我的计划是,当用户点击网页中的一些链接时,我调用扩展的javascript函数,并带有一些参数,比如要流式传输的视频的url。这个函数依次用传递的url来推送媒体播放器屏幕。媒体播放器运行良好,单独使用时可以流式播放视频。但是当使用扩展的javascript与BrowserField结合使用时,它不能播放视频。
我怀疑这个问题是与事件线程同步或与线程有关。我使用runnable推送包含媒体播放器的屏幕。屏幕即会显示。但是当我点击play按钮(这会启动一些线程来获取视频并播放它)时,什么都没有发生,我的应用程序冻结。我想不出确切的问题。如果有人能指出问题,我将不胜感激。
谢谢。
相关代码清单如下:
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);
}
});
}
发布于 2011-08-24 05:15:25
不要紧。解决了。原来,我试图从网页访问的视频是不兼容的格式,因此抛出一个错误并冻结了媒体播放器。
https://stackoverflow.com/questions/7163520
复制相似问题