我有一个流媒体视频应用,我想知道如何检测该应用是否正在缓冲。
在 AVPlayer 中,currentItem.isPlaybackLikelyToKeepUp bool 值告诉您播放缓冲区何时可能跟上当前下载速度,currentItem.isPlaybackBufferEmpty 告诉您播放缓冲区何时为空。
问题出现在播放视频时,由于网速太慢导致视频暂停。如果我然后按下播放按钮,播放器的 rate 为 1,但它没有播放。
如何检测视频是否因为正在缓冲而暂停? currentItem.isPlaybackBufferEmpty 即使在播放视频时也是如此...
编辑:我已经结合了这两个,现在我显示的显示缓冲的加载器仅在 currentItem.isPlaybackBufferEmpty && !currentItem.isPlaybackLikelyToKeepUp 时显示,加载器现在仅在视频后几秒钟显示开始播放。
Best Answer-推荐答案 strong>
这对我来说很好,也许它可以帮助,在 addPeriodicTimeObserver 中调用 self?.bufferState()
private func bufferState() {
if let currentItem = self.avPlayer.currentItem {
if currentItem.status == AVPlayerItemStatus.readyToPlay {
if currentItem.isPlaybackLikelyToKeepUp {
print("laying ")
} else if currentItem.isPlaybackBufferEmpty {
print("Buffer empty - show loader")
} else if currentItem.isPlaybackBufferFull {
print("Buffer full - hide loader")
} else {
print("Buffering ")
}
} else if currentItem.status == AVPlayerItemStatus.failed {
print("Failed ")
} else if currentItem.status == AVPlayerItemStatus.unknown {
print("Unknown ")
}
} else {
print("avPlayer.currentItem is nil")
}
}
关于ios - 如何检测 AVPlayer 中的缓冲?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/40149717/
|