Definindo o valor do controle deslizante para definir SeekToTime no AVPlayer
estou usandoJogador biblioteca, que está usando o AVPlayer e o AVFoundation, o que é bastante conveniente para o meu caso. Consegui reproduzir o vídeo e adicionar um controle deslizante. Defino o mínimo do controle deslizante para 0 e máximo para a duração do vídeo.
Neste ponto, para conectar o controle deslizante à hora de reprodução atual, useiesta resposta, no StackOverflow. Eu configurei um protocolo e useiaddPeriodicTimeObserverForInterval
, para que o controle deslizante seja vinculado ao currentTime e se mova à medida que o vídeo avança com êxito.
Agora aqui é meu problema. Eu quero fazer o inverso e fazer - quando o controle deslizante se mover, defina o currentTime do vídeo (para frente e para trás).
Eu fiz algumas pesquisas e descobri que éseekToTime
que eu deveria ligar oslider.value
(sender.value
no meu caso), mas não entendi como aplicá-lo ao Player. Como posso fazer o controle deslizante para controlar o currentTime?
Não sei se estou certo, mas, pelo que entendi, o primeiro passo deve ser:
protocol UserSetsTheTimeDelegate
{
func userSetsTheTime(result: Int)
}
class ViewController: UIViewController, PlayerDelegate {
...
func sliderValueDidChange(sender:UISlider!) {
print("value--\(sender.value)")
self.delegate?.userSetsTheTime(sender.value)
}
}
E acrescente, acho que devo adicionar oUserSetsTheTimeDelegate
no Player.swift, mas fiquei confuso aqui.
Atualizar:
Percebi que posso enviar os dados para o Player.swift usando uma instância no ViewController e adicionando um método na classe Player. Este é o primeiro passo. Mas agora, como currentTime está sendo atualizado (com a modificação do controle deslizante) tão rapidamente, isso não me permite manipular o valor do controle deslizante.