2016-04-17 10 views
3

Ich versuche, die currentTime() auf einemVideo mit einem NSTimer zu bekommen. Mit dem folgenden Code gebe ich immer 0.0 als aktuelle Zeit des Videos zurück. Was mache ich falsch?AVPlayer video currentTime immer zurück 0

var player: AVPlayer! 

    @IBOutlet weak var playerContainer: UIView! 

    var t1: Float! 
    var t2: Float! 
    var currentSecs: Float! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     player = AVPlayer(URL: NSURL(string: "http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4")!) 

     let playerLayer: AVPlayerLayer = AVPlayerLayer(player: self.player) 
     playerLayer.frame = self.playerContainer.frame 
     self.view.layer.addSublayer(playerLayer) 

     player?.play() 

     t1 = Float(self.player.currentTime().value) 
     t2 = Float(self.player.currentTime().timescale) 
     currentSecs = t1/t2 

     var timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: #selector(TheaterViewController.timeUpdate), userInfo: nil, repeats: true) 

    } 

    func timeUpdate() { 

     print(currentSecs) // Only prints 0.0 

    } 

Antwort

1

Ich habe es herausgefunden. t1 und t2 wurde nur einmal in viewDidLoad gesetzt. Ich habe sie beide zu updateTime bewegt und es hat funktioniert. -.-