我有一个网页,里面有一个html5视频和css3动画。网页在安卓设备的浏览器中完美播放。
问题是,使用硬件加速时,动画确实滞后,故障和跳跃,但视频播放正常。当我使用软件layerType时,动画可以完美播放,但视频无法播放(但是音频可以播放(,因为它不受支持。
我试过:
-
硬件在清单中加速
-
web_view.setLayerType(View.LAYER_TYPE_HARDWARE, null(
-
web_view.setLayerType(View.LAYER_TYPE_SOFTWARE, null(
-
人行横道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应用程序。希望这对某人有所帮助!