Alex Rivera | Logout

AVAudioPlayer gives no sound output

Asked 2012-06-01T19:37:14.193
12

I have imported audio toolbox and avfoundation to my class and added the frameworks to my project and am using this code to play a sound:

- (void)playSound:(NSString *)name withExtension:(NSString *)extension
{
    NSURL* soundUrl = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:name ofType:extension]]; 
    AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:soundUrl error:nil];
    audioPlayer.delegate = self;
    audioPlayer.volume = 1.0;
    [audioPlayer play];
}

I call it like this:

[self playSound:@"wrong" withExtension:@"wav"];

However I get zero sound.

Edit
Report

1 Answer

1

If you declare your AVAudioPlayer in a class method like -viewDidLoad, and ARC is on, the player will be released right after -viewDidLoad and become nil, (-(BOOL)play method won't block a thread) this will happend in milliseconds, obvious "nil" can't play anything, so you won't even hear a sound.

Better declare the player as ViewController's @property or make it as a global singleton, anything can last longer.

answered 2012-12-23T17:00:09.147

Your Answer