Einstellung des Schiebereglerwerts zum Festlegen von SeekToTime in AVPlayer

Ich benutzeSpiele library, das benutzt AVPlayer & AVFoundation, was für meinen Fall recht praktisch ist. Ich habe es erfolgreich geschafft, das Video abzuspielen und einen Schieberegler hinzuzufügen. Ich habe den Schieberegler auf 0 und die maximale Dauer des Videos eingestellt.

u diesem Zeitpunkt habe ich @ verwendet, um den Schieberegler mit der aktuellen Spielzeit zu verbindediese Antwort, bei StackOverflow. Ich habe ein Protokoll eingerichtet und @ verwendaddPeriodicTimeObserverForInterval, daher ist der Schieberegler mit der aktuellen Zeit verknüpft und bewegt sich, während sich das Video erfolgreich fortbewegt.

Nun, hier ist mein Problem. Ich möchte den Rückwärtsgang machen und beim Verschieben des Schiebereglers die aktuelle Zeit des Videos einstellen (vorwärts, rückwärts).

Ich habe ein paar Nachforschungen angestellt und herausgefunden, dass es @ isseekToTime dass ich das @ verlinken soslider.value (sender.value in meinem Fall), aber ich konnte nicht verstehen, wie ich es auf Player anwenden soll. Wie kann ich mit dem Schieberegler die currentTime steuern?

Ich bin mir nicht sicher, ob ich Recht habe, aber soweit ich weiß, sollte der erste Schritt sein:

protocol UserSetsTheTimeDelegate
{
  func userSetsTheTime(result: Int)
}

class ViewController: UIViewController, PlayerDelegate {
       ...

  func sliderValueDidChange(sender:UISlider!) {
     print("value--\(sender.value)")
     self.delegate?.userSetsTheTime(sender.value)
  }
}

Und füge hinzu, ich denke, ich sollte das @ hinzufügUserSetsTheTimeDelegate in Player.swift, aber ich habe hier verwirrt.

Aktualisiere:

Ich habe festgestellt, dass ich die Daten an Player.swift senden kann, indem ich eine Instanz in ViewController verwende und eine Methode in der Player-Klasse hinzufüge. Dies ist der erste Schritt. Aber jetzt, da currentTime so schnell aktualisiert wird (mit dem Ändern des Schiebereglers), kann ich den Schiebereglerwert nicht mehr ändern.

Antworten auf die Frage(0)

Ihre Antwort auf die Frage