多个 AVAudioPlayer 导致前面声音被覆盖

2020-05-23  本文已影响0人  天空中的球

在写一个 AVAudioPlayer 管理类的时候,由于是有多个声音的,然后有声音的 AudioPlayer 又必须得为其全局化,因为ARC 会 将释放调用插入到音频播放器中,因此在将其创建方法离开后立即将其释放, 所以为了解决此问题,一般让 AVAudioPlaye r为处理声音的类创建了一个属性,以便ARC不再释放该属性。

@property (strong, nonatomic) AVAudioPlayer *audioPlayer;

PS : 此处不设置确实是没有声音的。

然而当我有多个声音的时候,特别是前面的声音又是作为背景音乐不断重复播放的时候

  // 声音播放次数:0 播放一次,负数 无数次;
 _audioPlayer.numberOfLoops = loops;

此时是统一管理的,所以后面的声音来了后,前面的声音就被覆盖了,尴尬。

很简单,用一个数组和字典保存下就好了。

上一篇下一篇

猜你喜欢

热点阅读