1

我有一个应用程序使用 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)

建议?是否与重复创建音频播放器有关?替代品可能吗?

4

0 回答 0