preload.js - 预加载大量视频文件 - 部分计算机崩溃
preload.js - preloading large amount of video files - some computers crash
我是 运行 一个基于网络的实验,人们必须一个接一个地观看 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
});
我是 运行 一个基于网络的实验,人们必须一个接一个地观看 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
});