我有一个应用程序使用 avaudio 播放器来做两件事。其中一种是在检测到uiimageview碰撞时播放爆炸声,另一种是在按下按钮时播放激光声。我在 .h 类中声明了音频播放器,每次单击按钮时我都会调用它:
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)标志=0x2 errno=24(lldb)
建议?是否与重复创建音频播放器有关?替代品可能吗?