0

AVPlayerからUISliderにキャッシュされたデータを表示するにはどうすればよいですか?ネットワークからAVPlayerでオーディオを再生し、ダウンロードしたデータを表示したい。

4

2 に答える 2

1

コメントのように-リモートURLからダウンロードされたデータの量を示すavplayerから時間範囲を取得する方法があります。

AVPlayerストリーミングの進捗状況

于 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 に答える