Xcode iOS: как сбросить звук после его воспроизведения с помощью AVFoundation - PullRequest
1 голос
/ 21 декабря 2011

Итак, я сделал деки для больницы, в которой я работаю, она воспроизводит разные звуки, которые слушатели RT тоже должны слушать для дальнейшего обучения и для слушателей.Я могу остановиться и начать звучать нормально.У меня проблема в том, когда звук закончен.Вы должны нажать любую кнопку дважды, чтобы воспроизвести следующий звук.Поэтому мне интересно, как вы могли бы сбросить звуковые файлы после завершения.Я довольно новичок в obj-c, и мой инстинкт подсказывает мне реализовать NSTime, однако я не могу понять, как это сделать, или если это даже то, что я хочу сделать.

Заранее спасибо!

- (IBAction)play {
    if (soundIsPlaying == YES) {
        [audioplayer release];
        soundIsPlaying = NO;
    }

    else if (soundIsPlaying == NO) {
        NSString *path = [[NSBundle mainBundle] pathForResource:@"breathe1" ofType:@"wav"];
        audioplayer=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
        audioplayer.delegate = self;
        audioplayer.volume = 1.2;
        audioplayer.numberOfLoops = 0;
        [audioplayer play];
        soundIsPlaying = YES;
    }   
}

Ответы [ 3 ]

0 голосов
/ 21 декабря 2011

Вы можете отследить завершение вашего звукового файла, реализовав делегат audioPlayerDidFinishPlaying, см. AVAudioPlayerDelegate: http://developer.apple.com/library/IOs/#documentation/AVFoundation/Reference/AVAudioPlayerDelegateProtocolReference/Reference/Reference.html

Затем вы можете сбросить / отпустить плеер в этом обработчике.

0 голосов
/ 21 декабря 2011

Я не уверен, что это сработает, но, возможно, если вы измените

audioplayer.numberOfLoops = 0;

на

audioplayer.numberOfLoops = -1;

, чтобы он зацикливался до остановки.

0 голосов
/ 21 декабря 2011

Если вы используете AVAudioPlayer, существует свойство с именем numberOfLoops, которое вы можете установить.Ознакомьтесь с описанием класса AVAudioPlayer на веб-сайте Apple.

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