我有一个使用avaudio播放器做两件事的应用程序。其中一个是在检测到uiimageview碰撞时播放爆炸声,另一个是在按下按钮时播放激光声。我在.h类中声明了audioplayer,每次单击按钮时都会调用它:
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]
pathForResource:@"/lazer"
ofType:@"mp3"]];
NSError *error;
audioPlayer = [[AVAudioPlayer alloc]
initWithContentsOfURL:url
error:&error];
if (error)
{
NSLog(@"Error in audioPlayer: %@",
[error localizedDescription]);
} else {
[audioPlayer prepareToPlay];
}
[audioPlayer play];
这很好用,但经过多次使用游戏后,按下按钮时音频将停止播放,当检测到碰撞时,游戏会崩溃。这是我的崩溃日志:
2013-09-18 18:09:19.618 BattleShip [506:907] 18:09:19.617 shm_open失败:“AppleAudioQueue.41.2619”(23)flags = 0x2 errno = 24(lldb)
连连呢?可能与重复创建音频播放器有关吗?替代品可能吗?