本人很喜欢这个开源框架,但是再好用也有不顺心的时候,今天老板就提出了播放闪屏问题,经过阅读源码以及各种查阅资料,差不多处理完了,这里总结一下。
首先问题出现的原因是因为视频播放的监听处理不当导致的,这里可以说是视频上方覆盖的缩略图消失的时间不对。应该在视频播放的时候消失掉,而不是视频prepared之后,问题很简单,处理也很简单只需要三步,但是找bug的过程很痛苦,大家都知道,这就不多说了。
具体处理流程:
1:在JCVideoPlayer中新写一个方法,把onPrepared中的方法拖进去。
2.在JCMediaManager中的onInfo中判断what ==MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START(由于我已经替换ijkplayer,所以图中显示为IMediaPlayer),然后调用步骤一新建的方法。
3.在你调用的播放器类(如JCVideoPlayerStandard)中重写步骤一中的方法,并把官方源码中重写的的onPrepared方法中内容拖进来,ok,问题差不多处理完了。
。
4.以上步骤已经基本不会出现问题了,但是经过测试,有时候网络不好开始播放之前还是会出现PlayingBufferingShow状态,我也没有仔细阅读源码,但是想了一个简单暴力一点的方法,加标记,没有开始播放一直让缩略图显示(最好还是读下源码,仔细修改一下),如图,这样开始播放缩略图消失的黑屏问题就完美解决了。
效果图如下: