Sound Delay With AVAudio Player
Posted
by
Will Youmans
on Game Development
See other posts from Game Development
or by Will Youmans
Published on 2012-05-14T21:03:49Z
Indexed on
2012/06/28
21:25 UTC
Read the original article
Hit count: 156
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.
© Game Development or respective owner