为啥 Android WebView 不加载 youtube HTML5 iframe 视频?

Posted

技术标签:

【中文标题】为啥 Android WebView 不加载 youtube HTML5 iframe 视频?【英文标题】:Why Android WebView is not loading youtube HTML5 iframe video?为什么 Android WebView 不加载 youtube HTML5 iframe 视频? 【发布时间】:2012-08-07 05:27:39 【问题描述】:

我尝试了以下方法:

    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 视频?

【问题讨论】:

看看***.com/questions/8475707/…。这家伙有同样的问题,似乎得到它的工作。一些 cmets 建议不这样做,但这可能对你有用。 你可以看看this question and answer。和你的问题差不多。 这个有什么答案吗? 【参考方案1】:

iframe 适合我。但是,我发现,在 Windows 上使用 Android 模拟器播放视频时,模拟器上的互联网会在一段时间后停止工作,我需要重新启动模拟器才能访问互联网。这在 Android 手机上从未发生过。

所以,只需在您的浏览器上检查它以确保有互联网连接。

【讨论】:

【参考方案2】:

你必须把它放在你的清单中

<application android:hardwareAccelerated="true" ...>

【讨论】:

【参考方案3】:

在 Android 3.0++ 上,如果您的 android:targetSdkVersion 低于 11,则必须激活硬件加速。并且,您必须添加以下行:

wv.setWebChromeClient(new WebChromeClient());

【讨论】:

谢谢!它有效,但我还必须添加:webSettings.setJavaScriptEnabled(true);【参考方案4】:

您是在 2.3(GingerBread)还是 4.0(冰淇淋)上运行?

如果您在 Ice Cream 上运行,则需要启用硬件加速。

如果您在 GingerBread 上运行,请参考: WebView and HTML5 <video>

希望这个帮助。

【讨论】:

以上是关于为啥 Android WebView 不加载 youtube HTML5 iframe 视频?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Flutter WebView 不加载页面?

android webview加载嵌入了svg的html,svg作为background-img,但是不同设备为啥显示不同,怎么解决好

为啥我不能使用 Webview 加载我的本地页面

为啥 android webview 比原生 android 浏览器慢很多?

为啥 android webView 不支持 webSocket?

android中webview 怎么实现网页加载时显示加载进度?