preload.js - предварительная загрузка большого количества видеофайлов - сбой некоторых компьютеров
Я провожу веб-эксперимент, в котором люди должны просматривать 100 видеороликов продолжительностью 2 секунды (каждый размером около 200 КБ) одно за другим. Очень важно, чтобы между видео не было лагов, поэтому я предварительно загружаю их до того, как эксперимент начнет использовать preload.js. Эксперимент начинается, когда все видео загружены на 100%.
Тем не менее, это проблематично для некоторых людей, которые говорят, что предварительная загрузка вызывает сбой их браузеров. Я предполагаю, что это из-за проблемы с ОЗУ?
Что может быть хорошим способом решения этой проблемы? Является ли загрузка видео таким способом плохой практикой (сколько данных я могу безопасно предварительно загрузить)?
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
});