我有一个网页,其中包含html5视频和css3动画。该网页可在android设备的浏览器中完美播放。
问题是,在使用hardwareAccelerated时,动画确实很滞后,出现故障和跳动,但视频可以正常播放。当我使用layerType软件时,动画可以完美播放,但是视频却无法播放(音频可以播放),因为它不受支持。
我尝试过:
硬件在清单中加速
web_view.setLayerType(View.LAYER_TYPE_HARDWARE,空)
web_view.setLayerType(View.LAYER_TYPE_SOFTWARE,空)
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中的注释,它说不支持html5视频。
关于如何使WebView表现更好的任何建议?我知道该网址可以在浏览器中完美显示
答案 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应用。希望这对某人有帮助!