【问题标题】:AS3: Showing bufferlength of NetStreamAS3:显示 NetStream 的缓冲区长度
【发布时间】:2025-12-03 23:20:23
【问题描述】:

我正在尝试显示正在播放的视频的缓冲量。我正在使用 netstream.bufferLength 来执行此操作,这似乎是正确的。除了缓冲量几乎始终相同的事实之外。这不可能吧?

我希望它像 youtube 一样,您可以在其中按下暂停,缓冲区将继续上升。当我点击暂停时,它保持不变..

有人知道如何显示缓冲区长度吗?

【问题讨论】:

    标签: actionscript-3 buffer netstream


    【解决方案1】:

    您对缓冲区感到困惑,缓冲区是内容的预加载部分,仅在当前播放代码之前加载,因此可以与您所在的时间码进行比较,以及即时播放和缓存加载文件的可用性,该文件将整个文件到临时内存中,因此允许按照您的描述进行加载。

    您可以使用netstream.bytesLoaded / netstream.bytesTotal;找到总加载数据(百分比)

    【讨论】:

    • 我也尝试过,但始终保持在 100%。可以吗?
    • 啊!没关系!当电影尚未加载时,它可以完美运行。愚蠢的我:)非常感谢你:)
    • 这似乎不是正确的答案。对于流媒体内容 - bytesLoaded 和 bytesTotal 始终为 0。我也在寻找一种方法来做到这一点。虽然@shortstick 对缓冲的定义是准确的 - 我认为您实际上确实需要/可以使用该信息来显示缓冲状态。您可以使用 NetStream.Buffer.Empty 和 NetStream.Buffer.Full 来了解它何时缓冲...
    【解决方案2】:

    我很确定您想要的是:NetStream.time + NetStream.bufferLength。正如@shortstick 提到的 - 缓冲区与当前播放位置相关 - 您可以将播放的时间量视为“已经缓冲并使用” - 所以“缓冲内容”的总量是:

    NetStream.time + NetStream.bufferLength
    

    我用过,效果不错。

    【讨论】:

      最近更新 更多