我最近在我的游戏中加入了声音。用户每次触摸屏幕,都会射出一个箭头,并播放一个声音。我正在使用以下代码播放声音:
- (void)arrowShoot {
NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/arrow.mp3", [[NSBundle mainBundle] resourcePath]]];
arrowShootPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
if (arrowShootPlayer != nil) {
[arrowShootPlayer play];
}
}
arrowShootPlayer
我每次都分配内存的原因是因为用户可以快速点击屏幕,我希望声音重叠。否则,只有在前一个完成播放后才会播放声音。
无论如何,我收到此错误:
<com.apple.main-thread> shm_open failed: "AppleAudioQueue.36.5755" (23) flags=0x2 errno=24
一旦我收到此错误,声音就会停止播放。其他一切都很好,只是箭头声音停止播放。
有没有更好的方法在 iPhone 上播放类似这样的“重叠”声音,或者有没有办法解决这个错误?
谢谢