iOS - o AVPlayer seekToTime reinicia a reprodução do currentItem
Estou criando um aplicativo que usa o AVPlayer. Em uma das minhas visões, tenho um UISlider com o qual o usuário deve poder avançar e retroceder. Estou tendo problemas para conseguirseekToTime
trabalhar como eu quero. Quando tento mudar o tempo, a reprodução começa em 0 e não sei como resolver isso. Minha implementação atual é assim:
[self.progressSlider addTarget:self action:@selector(sliderValueChanged) forControlEvents:UIControlEventValueChanged];
[self.progressSlider addTarget:self action:@selector(sliderReleased) forControlEvents:UIControlEventTouchUpInside];
- (void)sliderValueChanged {
[...]
[player pause];
}
- (void)sliderReleased {
float timeInSecond = self.progressSlider.value;
timeInSecond *= 1000;
// I have trie to hard code this value, but I get the same result.
CMTime cmTime = CMTimeMake(timeInSecond, NSEC_PER_SEC);
[player.currentItem seekToTime:cmTime toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero completionHandler:^(BOOL finished) {
if (finished) {
[player play];
}
}];
}
Alguma idéia do que estou fazendo de errado?
Pode-se mencionar que eu transmito áudio usando o AVPlayer:playerItemWithURL
se isso faz alguma diferença.