最近webview结果页加载出现这个问题很头疼,因为你在log根本看不到什么有用的信息,即使有,就像我碰到的这个问题,看测试给的log是这个:
2021-03-29 14:41:12.754 21510-21544/com.journeyui.globalsearch I/ui.globalsearc: Explicit concurrent copying GC freed 1040234(25MB) AllocSpace objects, 20(14MB) LOS objects, 49% free, 7613KB/14MB, paused 272us total 108.911ms
2021-03-29 14:41:36.398 21510-21510/com.journeyui.globalsearch W/AudioManager: Use of stream types is deprecated for operations other than volume control
2021-03-29 14:41:36.398 21510-21510/com.journeyui.globalsearch W/AudioManager: See the documentation of requestAudioFocus() for what to use instead with android.media.AudioAttributes to qualify your playback use case
这个好像有点关系,说的是音频管理器焦点问题,其实对我解决这个问题没作用的。那我开始分析
1.这个webview是搜索的结果页,对应得是VideoResultFragment,是不是得在fragment里加上硬件加速?因为我在Activity里加过了,那没办法了。总得试一下吧?然后我加上去,发现视频点击播放点击播放,再点全屏那个会跳转播放然后还是卡住黑屏有声音,这种方法还是失败
2.然后我开始检查我的全屏和退出全屏的方法,
@Override
public void onShowCustomView(View view, IX5WebChromeClient.CustomViewCallback customViewCallback) {
super.onShowCustomView(view, customViewCallback);
CoolLogger.d(TAG,"onShowCustomView");
showCustomView(view);
}
@Override
public void onHideCustomView() {
super.onHideCustomView();
CoolLogger.d(TAG,"onHideCustomView");
hideCustomView();
}
没问题的,那究竟是什么问题呢,然后我回去再看了一遍Tecent x5webview的介绍,发现这样一句话
立马感觉到可能是Appcontext的关系,我new webview的时候传入的是Application的Context,改完后就没这个问题了。