AVAudioPlayer isPlaying сбой приложения - PullRequest
0 голосов
/ 04 октября 2010

Я использую AVAudioPlayer для управления некоторыми звуками, но метод isPlaying, похоже, дает сбой.

сделано, когда я запускаю страницу:

self.soundClass = [AVAudioPlayer alloc];

как я играю звук

-(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;

}

Мой звуковой класс сейчас довольно пуст:

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

Вы видитечто-то здесь я могу делать не так?Вылетает прямо в if ( isPlaying )

1 Ответ

2 голосов
/ 04 октября 2010

Вы указываете пространство, которое выделено для экземпляра AVAudioPlayer в первой строке, которую вы перечисляете, но вы фактически не инициализируете экземпляр. В Какао «alloc» составляет 99,9% времени, за которым следует некоторая форма -init (например, -initWithContentsOfURL: error: в случае AVAudioPlayer).

Кроме того, «soundClass» - это нечетное имя для переменной экземпляра. Вы должны прочитать разницу между классом (проект объекта) и экземпляром класса (фактический объект, созданный из проекта). Твердое знание этой концепции имеет решающее значение для вашего понимания программирования Какао (и все объектно-ориентированного).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...