iPhoneアプリで効果音を鳴らす場合、基本の作りは
NSString *path = [[NSBundle mainBundle] pathForResource:@”hogehoge.aif” ofType:nil];
NSURL *url = [NSURL fileURLWithPath:path];
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
[player play];
ですが、この方法で連続して効果音を鳴らすと・・・エラーが発生して、鳴らなくなる場合があります。
(ファイルオープンエラーのようなもの?)
この回避策としては、データをNSDataに保存して使い回すという方法があります。
NSString *hogehoge = [[NSBundle mainBundle] pathForResource:@”hogehoge.aif” ofType:nil];
NSData *buffer = [NSData dataWithContentsOfMappedFile:hogehoge];
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithData:buffer error:nil];
[player play];
上の方法で、bufferは、viewで保存しておいて使い回したら、、動きました。