为什么Android WebView无法加载YouTube HTML5 iframe视频?

15

我尝试了以下代码:

    WebView wv = (WebView) findViewById(R.id.webView1);
    String playVideo= "<html><body><iframe width='200' height='143' src='http://www.youtube.com/embed/JW5meKfy3fY' frameborder='0' allowfullscreen></iframe></body></html>";
    wv.getSettings().setPluginsEnabled(true);
    wv.getSettings().setAllowFileAccess(true);
    wv.getSettings().setPluginState(PluginState.ON);
    wv.getSettings().setBuiltInZoomControls(true);
    wv.getSettings().setJavaScriptEnabled(true);
    wv.loadData(playVideo, "text/html", "utf-8");

我只看到了缩略图,当我点击它时,画面会变成黑色,无法加载视频。我正在针对API 15进行开发,并具有互联网权限。如何在Android webview中运行html5 YouTube iframe视频?


看一下https://dev59.com/D17Va4cB1Zd3GeqPHjU0。这个人遇到了同样的问题,似乎已经解决了。一些评论表示不同意,但这可能适用于你。 - speedynomads
你可以看一下这个问题和答案:https://dev59.com/JWYq5IYBdhLWcg3w0kAT。它和你的问题几乎一样。 - Eikyi
有关于这个的任何答案吗? - Code_Life
4个回答

4
你需要将这段代码放入你的清单文件中。
<application android:hardwareAccelerated="true" ...>

2
在 Android 3.0 及以上版本中,如果您的 android:targetSdkVersion 低于 11,则必须启用硬件加速。此外,您还需要添加以下代码行:
wv.setWebChromeClient(new WebChromeClient());

谢谢!它起作用了,但我还需要添加:webSettings.setJavaScriptEnabled(true); - Francois Robert

1

您正在使用2.3(姜饼)或4.0(冰淇淋)系统?

如果您正在使用冰淇淋系统,您需要启用硬件加速。

如果您正在使用姜饼系统,请参考: WebView和HTML5 <video>

希望这能有所帮助。


0

iframe 对我来说很有效。但是,我发现,在 Windows 上使用 Android 模拟器观看 YouTube 视频时,模拟器上的互联网会在一段时间后停止工作,我需要重新启动模拟器才能获得互联网访问。这在 Android 手机上从未发生过。

因此,请在您的浏览器上检查以确保有互联网连接。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接