最近App需要集成视频播放功能,就这过程中遇到的问题,记录一下,给遇到相同问题同行提供参考。
1、增加loading
开始以为是在OnBufferingUpdateListener 回调判断,最终不行。发现MediaPlayer有一个setOnInfoListener 在视频卡主缓冲
恢复的情况下,都有事件抛出,看了一下描述。明白可以使用onInfo(MediaPlayer mp, int what, int extra)里面的what来判断。
MEDIA_INFO_VIDEO_RENDERING_START 出loading ,MEDIA_INFO_BUFFERING_END 消失loading 。
2、第一帧缓冲不出loading
按照上一步,增加了loading。发现在播放过程中,出现缓冲卡主是正常可以显示loading,以及缓冲好,消失loading。
但是如果是卡在前面的第一帧画面,不能正常出现loading画面。查看是没有MEDIA_INFO_VIDEO_RENDERING_START事件抛出。
查看onInfo,还有一个MEDIA_INFO_BUFFERING_START定义,加了一个MEDIA_INFO_BUFFERING_START,也显示loading,
消失还是等到MEDIA_INFO_BUFFERING_END。
3、初始化过程不出loading
发现在初始化过程中,等待十几秒,卡在MediaPlayer 的prepare过程,更疑惑的是,这个时候,loading也不显示。
分析发现还有prepareAsync()方法,一个是同步一个异步,改成异步,在回调的过程里面mMediaPlayer.start()。这样发现loading也可以正常显示了。