相当于 iOS AVPlayer 的 exoplayer 中的 getBufferedPosition()

Equivalent of getBufferedPosition() in exoplayer for iOS AVPlayer

我目前正在开发一个计算 HLS 流指标的 avplayer 应用程序。我想获取当前项目的缓冲级别。

private var availableDuration: Double {
        guard let timeRange = player.currentItem?.loadedTimeRanges.first?.timeRangeValue else {
            return 0.0
        }
        let startSeconds = timeRange.start.seconds
        let durationSeconds = timeRange.duration.seconds
        return startSeconds + durationSeconds
    }

我对苹果文档中使用的术语有点困惑。

这里我得到了当前项目的 availableDuration 但我不确定这是否代表当前项目的缓冲级别。

您的代码似乎没问题。我用的一样

var bufferInSeconds: Double {
  guard let range = self.loadedTimeRanges.first?.timeRangeValue else { 
    return 0.0 
  }
  let sec = range.start.seconds + range.duration.seconds
  return sec >= 0 ? sec : 0
}