开源播放器ijkplayer(六):Android下使⽤ijkplayer异常处理
思路
⼀、 java.lang.IllegalStateException: mpjni: setOptionLong: null mp
根据已查到的资料看,⽬前是ijk内部的问题,只能通过try&catch的⽅式进⾏处理。
⼆、暂停的时候,退到后台再回到前台,画⾯⿊屏
1. 可以在暂停的时候,通过Bitmap(point.x, point.y);获取到暂停的画⾯,⽤ImageView显⽰它,在onSurfaceTextureUpdated的时候隐藏ImageView,来实现画⾯的衔接。
2. 暂停时绘制静态画⾯多TextureView的Surface上,详细参考。
三、ijk在切换URL时报400错误(http与https域名共⽤)
ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "dns_cache_clear", 1);
四、ijkplayer onComplete异常回调
setoption现象描述:
在Android⼿机上,播放视频,在播放的时候把⽹络关闭,当player把buffer播放完成后,会回调onCompletion和onError⽅法,但是视频实际上还没播放完毕。
ijkplayer 项⽬此问题 Issues汇总:
优化⽅案:
增加播放失败的重试机制,将-10000这个错误进⾏处理,给⽤户重试的机制。
同时,如果收到播放完成的回调的时候,增加判断逻辑,如果当前播放的时长距真正结束超过5秒,则不做播放结束的处理。
五、ijkplayer reset()操作导致ANR
问题:IjkMediaPlayer reset() 耗时,release() 在⾳频未加载完时,也是耗时操作
解决:使⽤两个队列,⼀个存放可以使⽤的IjkMediaPlayer,⼀个存放待释放的IjkMediaPlayer,待释放播放器在线程⾥ reset。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论