如何从 AVPlayer 在 UISlider 中显示缓存的数据?我用 AVPlayer 从网络播放音频,我想显示下载的数据。
问问题
1757 次
2 回答
1
如评论中所述 - 有一种方法可以从 avplayer 获取时间范围,显示从远程 URL 下载了多少数据。
于 2011-10-17T18:21:59.043 回答
0
您应该观察播放器的 currentItem 的属性 loadedTimeRanges。像这样:
guard let currentItem = self.player?.currentItem else {return}
currentItem.addObserver(self, forKeyPath: "loadedTimeRanges", options: NSKeyValueObservingOptions.New, context: nil)
然后实现功能:
observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
guard object is AVPlayerItem else {return}
let item = object as! AVPlayerItem
if keyPath == "loadedTimeRanges" {
let array = item.loadedTimeRanges
guard let timeRange = array.first?.CMTimeRangeValue else {return}
let totalBuffer = CMTimeGetSeconds(timeRange.start) + CMTimeGetSeconds(timeRange.duration)
tmpTime = CGFloat(tmpTime)
print("totalBuffer - \(totalBuffer)")
let tmpProgress = tmpTime / playDuration
progressCallBack?(tmpProgress: Float(tmpProgress), playProgress: nil)
}
}
于 2016-08-19T14:00:18.753 回答