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.
Thanks :)