我正在进行基于网络的实验,其中人们必须依次观看100个2秒长的视频(每个大小约200kb)。非常重要的是视频之间没有延迟,所以我在实验开始之前使用preload.js预加载它们。当所有视频100%加载时,实验开始。
然而,这对某些人来说是有问题的,他们说预载导致他们的浏览器崩溃。我猜这是因为RAM问题?
解决这个问题的好方法是什么?是否以这种方式加载视频不好的做法(我可以安全地预加载多少数据)?
答案 0 :(得分:1)
您的问题仍然不清楚是实际的预加载过程还是导致浏览器浏览器崩溃的内存问题。
另一种策略是逐步加载当前视频开头的组中的下一个视频,并在触发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
});