AVAudioPlayer不是租房合适吗?

时间:2009-08-24 12:58:56

标签: iphone avaudioplayer

似乎AVAudioPlayer没有重新启用。因此,在下面将soundfx播放完成,延迟1秒,然后再次播放,而不是1秒延迟 - 并由此产生重叠播放:

// ...

AVAudioPlayer* soundfx = [[AVAudioPlayer alloc] initWithContentsOfURL:soundURL error:nil];


(void) makeSomeNoise {

  [soundfx play];
  sleep(1);
  [soundfx play];


}

我是否必须采用NSOperation - 线程 - 来实现重叠播放的目标?

注意:我使用的是IMA4 / ADPCM格式,这显然是分层声音播放的正确格式。

干杯, 道格

1 个答案:

答案 0 :(得分:1)

AVAudioPlayer不是可重入的。这是AVAudioPlayer在runloop结束后开始播放你的声音,而不是你的makeSomeNoise函数。如果您想以一秒钟的延迟播放声音,可以这样做:

(void) makeSomeNoise {
  [soundfx play];
  [soundfx performSelector:play withObject: nil afterDelay:1.0];
}