【发布时间】:2025-12-20 21:30:05
【问题描述】:
我有以下功能:
var progress = function(n, v0, derivativeSum) {
var v1 = stimulus.prop("buffered").end(0);
if(v0 == null) {
setTimeout(function() {progress(++n, v1, 0)}, 50);
return;
}
console.log("buffered: " + v1);
console.log("buff.length " + stimulus.prop("buffered").length);
derivativeSum += v1 - v0;
// In seconds
averageRate = derivativeSum / (n * .05);
// In seconds
timeleftToDownload = (duration - v1) / averageRate;
console.log(timeleftToDownload + " < " + v1);
console.log("average rate: " + averageRate);
if (timeleftToDownload < v1 / 20) {
showPlayButton();
return;
}
// Callback 50 millisecond delay
setTimeout(function() {progress(++n, v1, derivativeSum)}, 50);
};
这只是测试代码,所以逻辑不需要有意义。但是,我试图获取视频的加载秒数,因为我可以将其与我在 loadmetadata 中获取的视频的持续时间进行比较。
// Should be the length of the video buffered, example: 2304 seconds
var v1 = stimulus.prop("buffered").end(0);
但是 v1 似乎上限为 128。由于我有一个很长的视频,它显然应该更长。什么是 .end(0) 甚至返回?
【问题讨论】:
标签: jquery html html5-video