HTML5在Android WebView中没有视频仅播放音频

时间:2019-09-17 10:35:56

标签: android html css video webview

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

问题是,在使用hardwareAccelerated时,动画确实很滞后,出现故障和跳动,但视频可以正常播放。当我使用layerType软件时,动画可以完美播放,但是视频却无法播放(音频可以播放),因为它不受支持。

我尝试过:

  1. 硬件在清单中加速

  2. web_view.setLayerType(View.LAYER_TYPE_HARDWARE,空)

  3. web_view.setLayerType(View.LAYER_TYPE_SOFTWARE,空)

  4. CrossWalk XWalkView

    我也Android webview slow performanceAndroid webview slowAndroid 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中的注释,它说不支持html5视频。

关于如何使WebView表现更好的任何建议?我知道该网址可以在浏览器中完美显示

2 个答案:

答案 0 :(得分:0)

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

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

Chrome Webview更新77带来了此问题

答案 1 :(得分:0)

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

webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null)

然后,当视频开始播放时,我们观察并辛苦了

webView.setLayerType(View.LAYER_TYPE_HARDWARE, null)

这允许动画在软件加速下完美播放,但通过回弹到硬件解决了html5问题。我实现了一个javascript接口,以传递何时从网络视图切换回android应用。希望这对某人有帮助!