AVAudioPlayerdelegate - PullRequest
       4

AVAudioPlayerdelegate

0 голосов
/ 02 августа 2010

Я получаю эту ошибку для этого кода -

предупреждение: класс 'BeatMaker' не реализует протокол AVAudioPlayerDelegate '

-(IBAction)playBeat3 {
    NSString *path = [[NSBundle mainBundle] pathForResource:@"beat3" ofType:@"mp3"];
    AVAudioPlayer* theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL]; 
    theAudio.delegate = self;
    [theAudio play];                         
}

Может ли кто-нибудь помочь мне с этим?

1 Ответ

7 голосов
/ 02 августа 2010

Вы сказали своему экземпляру AVAudioPlayer, что ваш класс BeatMaker реализует протокол AVAudioPlayerDelegate со следующей строкой:

theAudio.delegate = self;

Но, очевидно, ваш класс BeatMaker не сказал компилятору, что это на самом деле AVAudioPlayerDelegate.Вы должны сделать это в файле заголовка:

@interface BeatMaker : NSObject <AVAudioPlayerDelegate> { ... }

Затем вам нужно убедиться, что вы реализовали все необходимые функции протокола AVAudioPlayerDelegate в своем классе BeatMaker.

В этом случае нет необходимых функций для протокола, поэтому, если вы просто копируете код и на самом деле не хотите получать сообщения из Audio, вы можете просто удалить строку, присваивающую себя делегатусобственность Аудио.

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