Я знаю, что подобные вопросы задавались ранее, но никто не смог решить эту конкретную проблему, они только решают ее часть.
Я хочу добиться следующего:
- У нас есть несколько видео.Давайте назовем их
video1
, video2
, video3
, video4
и video5
. - Видео воспроизводится в упорядоченной последовательности, которая повторяется в бесконечном цикле - поэтому после
video1
закончено, video2
воспроизводится, затем video3
, video4
, video5
и затем начинается снова с video1
. - Начальная точка должна быть случайной.Таким образом, вся эта последовательность должна начинаться со случайно выбранного видео в списке, а затем проходить по остальной части списка в обычном порядке.Если он случайным образом выберет начало с
video3
, он продолжит воспроизведение video4
, video5
, video1
, video2
и т. Д. - Воспроизведение последовательности должно начаться автоматическибез какого-либо пользовательского ввода.
- Теперь этот последний пункт является наиболее сложным: между воспроизведением каждого видео не должно быть промежутка.
Я смог написать кодчто делает все из пунктов Nr.От 1 до nr.4 но я не могу получить его, чтобы решить Nr.5!
Вот мой код.Я только установил background-color
видео на red
, чтобы сделать промежуток между видео видимыми - вы сможете увидеть красную вспышку между воспроизведением видео.Это то, что мне нужно решить: мне нужно пропустить этот интервал, чтобы воспроизведение было абсолютно плавным.
var vidElement = document.getElementById('video');
var vidSources = [
"http://www.w3schools.com/html/mov_bbb.mp4",
"http://www.w3schools.com/html/movie.mp4"
];
var activeVideo = Math.floor((Math.random() * vidSources.length));
vidElement.src = vidSources[activeVideo];
vidElement.addEventListener('ended', function(e) {
// update the active video index
activeVideo = (++activeVideo) % vidSources.length;
if(activeVideo === vidSources.length){
activeVideo = 0;
}
// update the video source and play
vidElement.src = vidSources[activeVideo];
vidElement.play();
});
video { background-color: red }
<video src="http://www.w3schools.com/html/mov_bbb.mp4" id="video" autoplay muted playsinline></video>
<p>(each video is just ~ 10 seconds)</p>