在Android WebView中嵌入来自vimeo的视频

时间:2012-01-31 14:17:12

标签: android video iframe webview video-streaming

我最近创建了一个移动网站,其中有几个来自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上得到了奇怪的渲染事物,所以它并没有完全解决这个问题。

1 个答案:

答案 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或更高版本)