2014-02-06 3 views
0

Я пытаюсь использовать AVAudioPlayer, чтобы воспроизвести mp3. Вот код, который у меня есть:Получение моего проигрывателя AVAudio

- (void) playClip { 
NSString *mp3File = [[NSBundle mainBundle] pathForResource:@"inFavor" ofType:@"mp3"]; 
AVAudioPlayer *avPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:mp3File] error:NULL]; 
[avPlayer play]; 
} 

имя файла, который я реферирование «inFavor.mp3»

Я немного новичок в Objective-C, так что я не точно, почему это не работает. Я использую Xcode 5.

+0

Вы подтвердили, что 'mp3File' не' nil'? И используйте параметр 'error', чтобы вы могли зарегистрировать проблему. – rmaddy

+0

Когда есть много вопросов, связанных с AVAudioPlayer, что особенного в вашем вопросе? -1 –

+0

Просто новый, ища помощь. Мое намерение - не добавлять к беспорядку. То, что может показаться очевидным (или как плохой вопрос) для кого-то, имеющего опыт, может показаться нормальным для кого-то нового. Это может быть немного пугающим, потому что для каждого человека, который отвечает на вопрос, есть кто-то, говорящий вам, что это глупый вопрос. :/ – johnnyrandak

ответ

1

Сделать AVAudioPlayer свойства класса, так что он не освобождается, когда функция выходит из области видимости.

@property (strong, nonatomic) AVAudioPlayer* avPlayer; 

Затем инициализировать

self.avPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:mp3File] error:NULL]; 
+0

спасибо за вашу помощь! Я думаю, что у меня это работает. – johnnyrandak

1

попробуйте этот код, вам необходимо проверить наличие ошибки. вставить журнал вы получаете по ошибке

NSError *error; 
NSString *path = [[NSBundle mainBundle] pathForResource:@"inFavor" 
               ofType:@"mp3"]; 
AVAudioPlayer* avPlayer = 
    [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] 
             error:&error]; 
if (error) { 
    NSLog(@"failed playing error: %@", error); 
}else{ 
//avPlayer.delegate = self; 
[avPlayer play]; 
} 
+0

на строке, которая гласит: avPlayer.delegate = self; это дает мне (желтое) сообщение об ошибке «Назначение id из несовместимого типа RJViewController * const_strong – johnnyrandak

Смежные вопросы