2

我正在将视频从实时源附加到源缓冲区,因此可能对源的长度没有限制。

源缓冲区中的数据在浏览器中的去向,是存储在内存中还是磁盘缓存文件中?

我应该担心缓冲区会变大吗?也许我应该定期从缓冲区中删除一些数据?

我不关心寻找,我只想看直播。

我运行此代码以查看缓冲区发生了什么

var ranges = sourceBuffer.buffered;
console.log("CURRENT TIME: " + video.currentTime);
console.log("BUFFERED RANGES: " + ranges.length);
for (var i = 0, len = ranges.length; i < len; i += 1) {
  console.log("RANGE: " + ranges.start(i) + " - " + ranges.end(i));
}

这是一个示例输出。

CURRENT TIME: 1604.005
BUFFERED RANGES: 2
RANGE: 1 - 1582 
RANGE: 1582 - 1606 
4

1 回答 1

1

不,你不必担心。将数据附加到缓冲区时,如果需要,MediaSource 将释放空间。请参阅规范

您可以通过运行 chrome 开发人员工具并在时间线选项卡中记录内存来验证这一点。如果看起来并非所有内存都返回,请不要担心,它最终会返回。

于 2014-05-27T11:03:18.673 回答