emachine
emachine

Reputation: 1173

AVAudioPlayer isPlaying crashing app

I'm using an AVAudioPlayer to manage some sounds but the isPlaying method seems to be crashing.

done when I initiate the page:

self.soundClass = [AVAudioPlayer alloc];

how I play the sound:

-(void)playSound:(NSString *)fileName:(NSString *)fileExt {

    if ( [self.soundClass isPlaying] ){
        [self.soundClass pause];
    }
    else if (newSoundFile == currentSoundFile) {
        [self.soundClass play];
    }
    else {
        NSLog(@"PlaySound with two variable passed function");
        [[NSBundle mainBundle] pathForResource: fileName ofType:fileExt]], &systemSoundID);

        [self.soundClass initWithContentsOfURL:[NSURL fileURLWithPath: [[NSBundle mainBundle] pathForResource: fileName ofType:fileExt]] error:nil];

        [self.soundClass prepareToPlay];
        [self.soundClass play];
    }

    self.currentSoundFile = fileName;

}

My soundClass is pretty empty right now:

soundclass.h

#import <UIKit/UIKit.h>
#import <AudioToolbox/AudioToolbox.h>
#import<AVFoundation/AVFoundation.h>


@interface SoundClass : AVAudioPlayer <AVAudioPlayerDelegate> {

}

@end

SoundClass.m

#import "SoundClass.h"

@implementation SoundClass 
-(void)dealloc {


    [super dealloc];
}

@end

Do you see anything here I might be doing wrong? It crashes right at if ( isPlaying )

Upvotes: 0

Views: 1006

Answers (1)

Joshua Nozzi
Joshua Nozzi

Reputation: 61228

You point to space that is allocated for an instance of AVAudioPlayer in the first line you list, but you don't actually initialize an instance. In Cocoa, "alloc" is 99.9% of the time followed by some form of -init (like -initWithContentsOfURL:error: in the case of AVAudioPlayer).

Also, "soundClass" is an odd name for an instance variable. You should read up on the difference between a class (the blueprint of an object) and an instance of a class (an actual object built from the blueprint). Solid knowledge of this concept is critical to your understanding of Cocoa (and all object-oriented) programming.

Upvotes: 2

Related Questions