AVPlayerViewController與NSURL的AVPlayer?
您需要設置視頻資產並使用該基於NSURL的資產創建playerItem。然後,你將需要一個觀察者添加到playerItem(立即):
self.playerItem?.addObserver(self, forKeyPath: "status", options: NSKeyValueObservingOptions.New, context: Constants.AVPlayerStatusObservationContext)
從鍵值觀察者例行你可以捕捉範圍內,並調用外部函數:
override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
//
if context == Constants.AVPlayerStatusObservationContext {
if (keyPath! == "status") {
if (player!.status == AVPlayerStatus.ReadyToPlay) {
print("ready")
readyToPlay()
} else if (player!.status == AVPlayerStatus.Failed) {
// something went wrong. player.error should contain some information
} else if (player!.status == AVPlayerStatus.Unknown) {
print("unknown")
}
}
}
}
如果你只想要處理緩衝並單擊按鈕時下載,然後確保只在按鈕操作方法中添加觀察者。這同樣適用於文件URL作爲在線URL。
請檢查我的樣本要點的詳細資料:
VideoPlayerViewController.swift