2016-08-30 60 views
0

我在我的项目中使用AVPlayer播放视频流。我的项目是用Swift语言编写的。如何检测AVPlayer中的错误链接播放swift

如何检测在AVPlayer中播放了错误的链接?

我用这个:

player.addObserver(self, forKeyPath: "status", options:NSKeyValueObservingOptions(), context: nil) 

override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) { 
     if (keyPath == "status") { 
      let status: AVPlayerStatus = self.playerViewController.player!.status 
      switch (status) { 
      case AVPlayerStatus.ReadyToPlay: 
       print("---------- ReadyToPlay ----------") 
       break 
      case AVPlayerStatus.Unknown, AVPlayerStatus.Failed: 
       print("---------- FAILED ----------") 
       break 
      } 
     } 
    } 

但结果是,它总是返回:

---------- ReadyToPlay ----------

任何提示会有所帮助。谢谢。

+0

您的代码虽然不是非常习惯,但看起来结构正确。有什么问题? – matt

+0

我尝试了一个错误链接流,但它仍然显示---------- ReadyToPlay ---------- :-( –

回答

0

嗯我还没有测试过,但试试这个。

player?.addObserver(self, forKeyPath: "status", options: .new, context: nil) 
} 



override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) { 
    if (keyPath == "status") { 
     let status: AVPlayerStatus = self.player!.status 
     if(status == AVPlayerStatus.readyToPlay){ 
      print("Ready to play") 
     } 
     else{ 
      if(status == AVPlayerStatus.unknown){ 
       print("failed") 
      } 

     } 
    } 
}