Ios 如何在AVPlayer中检测缓冲?
我有一个流媒体视频应用程序,我想知道如何检测该应用程序是否正在缓冲 在AVPlayer中,有一个Ios 如何在AVPlayer中检测缓冲?,ios,video,avplayer,Ios,Video,Avplayer,我有一个流媒体视频应用程序,我想知道如何检测该应用程序是否正在缓冲 在AVPlayer中,有一个currentItem.isPlaybackLikelyToKeepUp布尔值,它告诉您播放缓冲区何时可能保持当前下载速度,还有一个currentItem.isplaybackufferempty告诉您播放缓冲区何时为空 问题发生在视频播放时,视频暂停是因为互联网太慢。如果按下播放按钮,播放机的速率为1,但不播放 我如何检测视频暂停,因为它正在缓冲currentItem.isplaybackuffer
currentItem.isPlaybackLikelyToKeepUp
布尔值,它告诉您播放缓冲区何时可能保持当前下载速度,还有一个currentItem.isplaybackufferempty
告诉您播放缓冲区何时为空
问题发生在视频播放时,视频暂停是因为互联网太慢。如果按下播放按钮,播放机的速率
为1,但不播放
我如何检测视频暂停,因为它正在缓冲currentItem.isplaybackufferempty
即使在播放视频时也是真的
编辑:我组合了这两个选项,现在我显示的用于显示缓冲的加载程序仅在
currentItem.isplaybackufferempty&&时显示!currentItem.isPlaybackLikelyToKeepUp
,加载程序现在只在视频开始播放后几秒钟显示。这对我来说很好,也许它可以帮助,在addPeriodicTimeObserver内调用self?.bufferState()
private func bufferState() {
if let currentItem = self.avPlayer.currentItem {
if currentItem.status == AVPlayerItemStatus.readyToPlay {
if currentItem.isPlaybackLikelyToKeepUp {
print("Playing ")
} 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")
}
}