当AVPlayer准备播放时,AVPlayer的addObserver永远不会被调用?

Nas*_*han 3 observers ios avplayer swift ios9.1

我已经将观察者添加到AVPlayer但是当avplayer状态准备就绪时它没有调用该函数.当视频开始播放时,该函数调用两次,但AVPlayer的持续时间参数都返回'nan',而我需要在AVPlayer准备播放时获得持续时间.

    playerController.player = player
    self.addChildViewController(playerController)
    self.view.addSubview(playerController.view)
    playerController.view.frame = self.view.frame
    playerController.showsPlaybackControls = false
    player.addObserver(self, forKeyPath: "status", options: NSKeyValueObservingOptions(), context: nil)
    player.play()

override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
    if player.currentItem?.status == AVPlayerItemStatus.ReadyToPlay {
      print("a")  
    }
}
Run Code Online (Sandbox Code Playgroud)

Nas*_*han 7

替换这样的addObserver行:

player.currentItem!.addObserver(self, forKeyPath: "status", options: NSKeyValueObservingOptions(), context: nil)
Run Code Online (Sandbox Code Playgroud)