2016-04-17 88 views
3

我试图使用NSTimerAVPlayer视频上获取currentTime()。使用下面的代码,我总是返回0.0作为视频的当前时间。我究竟做错了什么?AVPlayer视频currentTime始终返回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 

    } 

回答

1

想通了。 t1t2仅在viewDidLoad中每个设置一次。我把他们都搬到了updateTime,它工作。 -.-