vrw*_*wim 3 video ios avplayer
我有一个流视频应用程序,我想知道如何检测该应用程序是否正在缓冲。
在 AVPlayer 中,有一个currentItem.isPlaybackLikelyToKeepUp布尔值可以告诉您播放缓冲区何时可能跟上当前的下载速度,并currentItem.isPlaybackBufferEmpty告诉您播放缓冲区何时为空。
问题发生在视频播放时,由于网速太慢,视频暂停。如果我按下播放按钮,rate播放器的值为 1,但它没有播放。
如何检测视频因缓冲而暂停?currentItem.isPlaybackBufferEmpty即使视频正在播放也是如此......
编辑:我已经将这两个结合起来,现在我显示的用于显示缓冲的加载程序仅在以下情况下显示currentItem.isPlaybackBufferEmpty && !currentItem.isPlaybackLikelyToKeepUp,加载程序现在仅在视频开始播放后显示几秒钟。
这对我来说效果很好,也许有帮助,请致电self?.bufferState()内部addPeriodicTimeObserver
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")
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4445 次 |
| 最近记录: |