我目前正在开发一个计算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
}
我对apple文档中使用的术语有点困惑。
这里我得到当前项目的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
}