ijkplayer的调用了shutdown,声音还是有

在使用ijkplayer时,调用shutdown方法后仍听到声音。原因是shutdown仅释放当前对象,若多次创建ijkplayer,需确保清除所有旧对象。解决办法是在创建新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!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值