Android webview点击视频播放卡住 黑屏 点击播放有声音但画面卡住或者黑屏的分析

本文讲述了作者在处理WebView页面加载卡顿时,通过分析log日志和调整AppContext使用,解决了与音频焦点无关的性能问题。重点在于理解AppContext对WebView性能的影响及应用实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

最近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,改完后就没这个问题了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值