iPhone SDK AVAudioPlayer - остановить, а затем не запустить - PullRequest
0 голосов
/ 25 января 2011
- (IBAction)triggerSound {
    if (player == nil) {
        NSError *error;
        player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
    } else if ([player isPlaying]) {
        [player stop];
        player.currentTime = 0;
    }

    if (![player play]) {
        NSLog(@"fail");
    }
}

Где игрок - AVAudioPlayer, и это действие связано с UIButton. Звук может быть воспроизведен и может быть воспроизведен снова после завершения звука, но когда я снова нажимаю кнопку во время воспроизведения, регистрируется сообщение «fail», и звук не может воспроизводиться без каких-либо исключений.

Я и использую iPad с iOS 4.2.1.

1 Ответ

0 голосов
/ 29 сентября 2011

Я заметил, что аудиопоток не воспроизводится после вызова stop (что в соответствии со ссылкой отменяет то, что делает prepareToPlay и play). Вместо вызова stop работало задание currentTime для player.duration (конец потока).

...