我最近创建了一个移动网站,其中有几个来自Vimeo的iframe嵌入。现在,在带有闪存的android浏览器中,这种方法效果非常好,但是当我尝试将其塞入WebView以获取伪应用时,视频将无法播放。我已经阅读了很多关于这个问题的主题,这是我到目前为止的代码:
WebView wv = (WebView) findViewById(R.id.webview);
wv.getSettings().setJavaScriptEnabled(true);
if (Build.VERSION.SDK_INT < 8) {
wv.getSettings().setPluginsEnabled(true);
} else {
wv.getSettings().setPluginState(PluginState.ON);
}
wv.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;
}
});
wv.loadUrl("myurl.here");
页面加载正常,一切正常,视频播放除外。我得到的只是一个黑色矩形,对任何东西都没有反应。
我正在尝试播放的视频iframe看起来像这样:<iframe src='http://player.vimeo.com/video/<VIDEO ID HERE>?title=0&byline=0&portrait=0' width='100%' height='auto' frameborder='0'></iframe>
我也尝试为应用启用硬件加速,但这会导致一个全新的问题。在启动应用程序时,这就是所有显示的(在星系连接上测试): http://i.imgur.com/bnonm.png
手机上安装了Flash,通过浏览器正常加载网页效果很好。
我一直在谷歌搜索这一天,当我开始试图解决这个问题时,我仍然像以前一样陷入困境。我开始认为这根本不可能。
更新:借用运行Android 3.2的xoom平板电脑,启用硬件加速后视频播放正常。我仍然在nexus上得到了奇怪的渲染事物,所以它并没有完全解决这个问题。
答案 0 :(得分:0)
如果有人发现这一点,我找到了一个可能对here有帮助的答案。
您必须在加载WebView之前添加此代码:
wv.setWebChromeClient(new WebChromeClient() {
});
使用示例:
WebView wv;
wv.setWebChromeClient(new WebChromeClient() {
});
wv.loadUrl("http://www.example.com/");
并确保包括:
android:hardwareAccelerated="true"
AndroidManifest.xml的<manifest>
标记中的(仅适用于API 11或更高版本)