Невозможно воспроизвести один массив видео в течение часа - PullRequest
0 голосов
/ 09 февраля 2019

У меня есть массив из нескольких видео.Прямо сейчас код ниже работает в том, что он проигрывает несколько видео один за другим.Однако они не зависят от времени, и я специально хочу воспроизвести эти видео ровно в течение часа.Как я могу добиться этого с помощью Javascript?

<body onload="myNewSrc()">
    <div id="section-title">
        <video onended="myAddListener()" autoplay controls width="100%" height="auto">
            <source src="" type="video/mp4">
        </video>
    </div>
    <script>
        var videoSources = ["http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4",
            "http://www.html5videoplayer.net/videos/toystory.mp4",
            "http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4",
            "http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4",
            "http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4"
        ];
        var currentIndex = 0;
        //listener function changes src
        function myNewSrc() {
            var myVideo = document.getElementsByTagName('video')[0];
            myVideo.src = videoSources[currentIndex];
            myVideo.load();
        }

        function myAddListener() {
            var myVideo = document.getElementsByTagName('video')[0];
            currentIndex = (currentIndex + 1) % videoSources.length;
            myVideo.src = videoSources[currentIndex];
            myVideo.addEventListener('ended', myNewSrc, false);
        }
    </script>
</body>

Ответы [ 2 ]

0 голосов
/ 09 февраля 2019

Вы можете сделать что-то вроде этого

var startTime;
var videoSources = 
["http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4", "http://www.html5videoplayer.net/videos/toystory.mp4", "http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4", "http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4", "http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4"];
var currentIndex =0;
//listener function changes src
function myNewSrc(){
    startTime = new Date;
    var myVideo = document.getElementsByTagName('video')[0];
    myVideo.src=videoSources[currentIndex];
    myVideo.load();
}
function myAddListener(){

    if ((new Date) - startTime > (60 * 60 * 1000)) {
        return;
    }
    var myVideo=document.getElementsByTagName('video')[0];
    currentIndex=(currentIndex+1)%videoSources.length;
    myVideo.src=videoSources[currentIndex];
    myVideo.addEventListener('ended',myNewSrc,false);
}
0 голосов
/ 09 февраля 2019

Добавьте DOMContentLoaded прослушиватель событий к телу, затем внутри него получите текущее время, используя Date.now(), и сохраните его в некоторой переменной.

Затем сравнивайте сохраненное время с текущим временем каждый раз, когда видеозаканчивает игратьЕсли прошло более одного часа, завершите воспроизведение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...