我见过AVPlayerItem
的2个属性:
@property (nonatomic, readonly, getter=isPlaybackBufferFull) BOOL playbackBufferFull;
@property (nonatomic, readonly, getter=isPlaybackBufferEmpty) BOOL playbackBufferEmpty;
现在,这是Apple文档所说的:
playbackBufferFull:
此属性报告用于播放的数据缓冲区已达到 容量。尽管播放缓冲区达到容量,但可能存在 没有足够的统计数据来支持a
playbackLikelyToKeepUp
预测YES
。
playbackBufferEmpty:
表示播放消耗了所有缓冲的媒体 播放将停止或结束。
从这些陈述中,我所理解的是:
playbackBufferFull:
整个数据已加载播放。例如,我正在播放一段长达5分钟的网址视频。当所有内容一直到最后加载时,这些都是真的。
playbackBufferEmpty:
实际播放已消耗到目前为止加载的所有缓冲区。例如,已经加载了直到2.3分钟的数据,并且直到该时间已经达到回放并且不再有内容呈现。 (我认为现在是开始旋转木马的时候了,指标)
我误解了什么吗?如果是,请纠正我..
欢迎任何深度知识或建议!
答案 0 :(得分:2)
我不是这方面的专家,但这是我的理解:
视频以压缩格式存储。在需要显示帧之前,它们不会被解压缩。当视频正在显示时,这会在播放缓冲区中实时发生。
回放缓冲区是准备显示的解压缩帧的缓冲区。 如果它已满,并不意味着整个视频已准备好播放。播放缓冲区只有几秒钟。这意味着播放缓冲区保持的几秒钟播放已满。
如果它是空的,则意味着没有可以播放的视频,因此播放已完成或者它将冻结并显示"缓冲"消息加载更多内容时。