ijkplayer的调用了shutdown,声音还是有
前要
今天遇到很坑爹的问题,就是明明已经调用了ijkplayer的shutdown,但是还是一直有声音呀,困扰了我很久。
问题解决方法
其实很简单的,shutdown只是释放当前的ijkplayer的对象,但是当你反复创建ijkplayer多个对象的时候,你就会,必须清除之前的ijkplayer对象。
上图中,有人很好奇为什么初始化的时候就执行销毁shutdown的操作,把self.player置空呢??,其实我的下面的方法会执行多次,我最开始时传入的live_url的值是空,目的就是个占位图吧了。也不是必须非得让它能够,只有当传进来的url不是空的时候,重新初始化,调用下面的方法
- (void)initIJKPlayerViewWithUrl:(NSString *)live_url{}
有人会问直接替换url不就好了,为啥非得重新初始化一下ijkplayer呢?这里因为ijkplayer只提供了利用url初始化ijkplayer对象的方法,没有修改url的方法。
所以只能初始化,让之前的ijkplayer对象释放掉,重新初始化。我就是因为少了下面这句
[self.player shutdown];
之前没有释放掉,当我们退出控制器的时候,正常调用shutdown的时候,仅仅释放了最后一个创建的ijkplayer对象,这样我们销毁控制器的时候也一直有声音在后台播放,除非退出app的时候,声音才没有,毕竟app级别的退出的时候,系统肯定让app的处于休息状态,声音也就没有了,重新进去的时候还是有。
总结
最好的方法就是在创建前,先销毁掉ijkplayer的,保证创建之前是空的。shutdown!shotdown!!shotdown!!!