AVPlayer에서 캐시 된 데이터를 UISlider에 표시하는 방법은 무엇입니까? 네트워크에서 AVPlayer로 오디오를 재생하고 다운로드 한 데이터를 표시하려고합니다.AVPlayer 캐시 된 데이터 표시
0
A
답변
1
코멘트에서와 같이 - 원격 URL에서 얼마나 많은 데이터를 다운로드했는지 보여주는 avplayer의 시간 범위를 가져 오는 방법이 있습니다.
0
당신은 당신의 player`s의 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)
}
}
내가 뭔가 작업이를, 이쪽을 봐 : http://stackoverflow.com/questions/7691854/avplayer-streaming- 진행/7730708 # 7730708 –
고맙습니다. –