2015-02-26 2 views
1

Я пытаюсь воспроизвести звук, используя AVAudioPlayer на os x (не iOS!). Я использую следующий код:AVAudioPlayer на OS X не играет никакой звук

AVAudioPlayer *player; 
NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:name ofType:@"mp3"]; 
NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath]; 
player = [[AVAudioPlayer alloc] initWithContentsOfURL: 
      soundFileURL error:&err]; 

if(err){ 
    NSLog(@"Failed with reason: %@", [err localizedDescription]); 
} 
else{ 
    player.delegate = self; 
    player.numberOfLoops = -1; 
    player.currentTime = 0; 
    player.volume = 1.0; 
    [player play]; 
} 

Все в порядке, и игрок вызывает функцию воспроизведения без ошибок. Однако после этого я не слышу никакого звука. Я уверен, что мой аудиофайл в порядке, потому что я смог воспроизвести его, используя класс NSSound. Причина, по которой я хочу использовать AVAudioPlayer, заключается в том, что когда я использую класс NSSound, и я играю его в цикле, между ними короткая пауза, и поэтому я хотел попробовать AVAudioPlayer.

+0

Определите игрока как свойство, чтобы оно не испарилось после того, как ваш метод заканчивается? –

+1

Спасибо, много. Вот и все: если вы напишете свой комментарий в качестве ответа, я соглашусь с ним. – Wojtek

ответ

1

Определите *player как property, чтобы он не испарился после завершения вашего метода.