Sound Delay With AVAudio Player
- by Will Youmans
I'm using the following code in my viewDidLoad to load a sound:
NSURL * url = [NSURL fileURLWithPath:
[NSString stringWithFormat:@"%@/Moto - Hit Sound.mp3",
[[NSBundle mainBundle] resourcePath]]];
NSError * error;
hitSoundPlayer = [[AVAudioPlayer alloc]initWithContentsOfURL:url error:&error];
hitSoundPlayer.numberOfLoops = 0;
Then I'm using this in a void method to play the sound:
if(CGRectIntersectsRect(main.frame, enemy1.frame)){
[hitSoundPlayer play];
}
This does seem to work, however the first time the sound is played there is a lot of lag and the game stops temporarily. I'm using this same method for when in an IBAction and it works fine, it must be the fact that it's also detecting a collision that makes the sound lag. If I want to be able to play sounds quickly and on the spot without any sort of lag am I doing the right thing? Do I want to use another method?
I'm not using any frameworks like cocos2d. If you need to see any more code just ask.