我正在进行一项基于网络的实验,在该实验中,人们必须一个接一个地观看 100 个 2 秒长的视频(每个视频大小约为 200kb)。视频之间没有延迟非常重要,因此我在实验开始之前使用 preload.js 预加载它们。当所有视频加载 100% 时,实验开始。
但是,这对某些人来说是个问题,他们说预加载导致他们的浏览器崩溃。我猜这是因为RAM问题?
什么可能是解决这个问题的好方法?以这种方式加载视频是不好的做法(我可以安全地预加载多少数据)?
您的问题尚不清楚是实际的预加载过程还是导致查看器浏览器崩溃的内存问题。
另一种策略是在当前视频的开头逐步加载组中的下一个视频,并onended
在触发事件时播放。
下面是一些可以帮助您入门的伪代码:
var loadNext, videoGetTime;
videoGetTime = function(ele, callback) {
var loading, video;
video = $(ele);
loading = false;
video.on('timeupdate', function(e) {
var currentTime;
currentTime = e.originalEvent.target.currentTime;
if (currentTime >= (video[0].duration / 2) && !loading) {
callback();
loading = true;
}
});
};
loadNext = function() {
alert('loading next');
};
videoGetTime('#video', loadNext);
接着
video.on('ended', function(e){
//play the next video in the set
});