2016-08-30 2 views
0

내 프로젝트에서 비디오 스트리밍을 재생하기 위해 AVPlayer을 사용하고 있습니다. 내 프로젝트는 Swift 언어로 작성되었습니다.AVPlayer에서 오류 링크 재생을 감지하는 방법

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") 
      } 

     } 
    } 
} 
관련 문제