Простая перемотка для AVAudioplayer - PullRequest
1 голос
/ 23 августа 2011

У меня есть обработчик события с измененным значением, подобный этому:

-(void)scrub:(id)sender
{
    if(self.audioPlayer.playing)
    {
        self.audioPlayer.pause;
        self.audioPlayer.currentTime=self.scrubber.value;
        self.audioPlayer.play;
    }
}

Почему не происходит перемотка? что я должен добавить? Спасибо! Более того, как отобразить текущее время в метке?

1 Ответ

2 голосов
/ 23 августа 2011

Чтобы установить время, вы можете сделать:

           [audioPlayer setTime:self.scrubber.value];

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

Если вы используете UISlider, вы можете сделать что-то вроде этого, чтобы установить время:

            double value = progressSlider.value;
            double newSeekTime = (value / 100.0) * audioPlayer.duration;

            [audioPlayer setCurrentTime:(int)newSeekTime];

Чтобы получить время, вы просто делаете audioPlayer.currentTime. Это NSTimeInterval, который является просто двойным. Для отображения времени вы можете сделать:

* * 1010
...