HTML5在android WebView中没有视频只有音频播放

Posted

技术标签:

【中文标题】HTML5在android WebView中没有视频只有音频播放【英文标题】:HTML5 no video only audio playing in android WebView 【发布时间】:2020-01-18 05:05:59 【问题描述】:

我有一个网页,其中包含 html5 视频和 css3 动画。网页在安卓设备的浏览器中完美播放。

问题是,当使用 hardwareAccelerated 时,动画真的很卡顿、毛刺和跳跃,但视频播放正常。当我使用软件 layerType 时,动画播放完美,但视频不播放(但音频播放),因为它不受支持。

我试过了:

    清单中的硬件加速

    web_view.setLayerType(View.LAYER_TYPE_HARDWARE, null)

    web_view.setLayerType(View.LAYER_TYPE_SOFTWARE, null)

    CrossWalk XWalkView

    我也尝试过这些解决方案android webview slow performance、Android webview slow、Android webview loading data performance very slow 等等

我查看了cordova webView代码并尝试了这个

        webView.setInitialScale(0)
        webView.isVerticalScrollBarEnabled = false
        // Enable javascript
        val settings = webView.settings
        settings.javaScriptEnabled = true
        settings.javaScriptCanOpenWindowsAutomatically = true
        settings.layoutAlgorithm = WebSettings.LayoutAlgorithm.NORMAL

这一行

        webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null)

完美地修复了动画,但来自Android webview slow 中的 cmets 说不支持 html5 视频。

关于如何让 WebView 表现更好的任何建议?我知道 url 可以在浏览器中使用,因为它是完美的

【问题讨论】:

你看到这个答案了吗:***.com/a/3205501/4079010 是的,我有,但感谢分享。该视频在网络、ios 和 android 浏览器上播放得非常好。在我添加 webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null) 之前它可以正常播放,但是 WebView 中的 CSS 动画非常滞后 动画在安卓浏览器上运行正常吗? 是的!完美,完全没有延迟 有音频但没有视频 【参考方案1】:

我们遇到了同样的问题。尝试将 webview 的高度和宽度设置为特定值。

FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
                "ScreenWidth",
                "ScreenHeight");

chrome webview update 77 出现了这个问题

【讨论】:

我刚刚尝试过,但仍然遇到同样的问题 :( 有很多动画,但它们在浏览器中可以正常播放。您还有其他建议吗? 我们还删除了“setInitialScale”行。所以也许这就是魔法。 我已经把它去掉了,我们唯一使用的是 webChromeClient、layoutParams(如上所述)、javascriptEnabled 和 javascriptInterface,所以我们也不再设置 initialScale【参考方案2】:

对我们来说,答案是在硬件和软件加速之间切换。在开始时,我们使用了激烈的动画:

webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null)

然后当视频开始播放时,我们观察并努力

webView.setLayerType(View.LAYER_TYPE_HARDWARE, null)

这使动画可以通过软件加速完美播放,但通过弹回硬件解决了 html5 问题。我实现了一个 javascript 界面来传递何时从 web 视图切换回 android 应用程序。希望这可以帮助某人!

【讨论】:

以上是关于HTML5在android WebView中没有视频只有音频播放的主要内容,如果未能解决你的问题,请参考以下文章

在 mediaplayer 中播放的 Android webview 视频

HTML5在android WebView中没有视频只有音频播放

html5 视频不适用于 android webview

html5视频无法与android webview一起使用

Android webview html5地理定位

Android 模拟器未在 webview 中显示 html5 画布