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



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

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

我试过:

  1. 硬件在清单中加速

  2. web_view.setLayerType(View.LAYER_TYPE_HARDWARE, null(

  3. web_view.setLayerType(View.LAYER_TYPE_SOFTWARE, null(

  4. 人行横道XWalkView

    我也尝试过这些解决方案 安卓网络视图性能慢,安卓网络视图慢,安卓网络视图加载数据性能非常慢等等

我查看了科尔多瓦网络视图代码并尝试了这个

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 网络视图缓慢的评论中可以看出不支持 HTML5 视频。

关于如何使 WebView 性能更好的任何建议?我知道网址有效,因为它在浏览器中是完美的

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

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

此问题随 chrome 网页视图更新 77 一起出现

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

webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null)

然后当视频开始播放时,我们观察并辛勤工作

webView.setLayerType(View.LAYER_TYPE_HARDWARE, null)

这使得动画可以在软件加速下完美播放,但通过轻弹回硬件来修复 html5 问题。我实现了一个javascript接口来传递何时从Web视图切换回Android应用程序。希望这对某人有所帮助!

最新更新