Как мгновенно приостановить видео (в javascript), когда нет активности?

Я работаю над несколькими потоковыми видео. Это работает таким образом, когда я переключаюсь на новую вкладку и остаюсь там в течение одной минуты, потоковое видео в предыдущей вкладке приостанавливается. Ниже приведен код, который делает это:

// If the live streaming videos get hidden for one minute, it get paused. 

no.visibility': function() {

hiddenTimeout = setTimeout(function () {

    let lens, hash;

    for (hash in lenss) {

        lens = lenss[hash];

        if (lens.loaded && lens.player != undef) {

            if (lens.player.isPlaying()) {

                lens.player.pause();
            }

            if (lens.mjpeg_player != undef) {

                lens.mjpeg_player.pause();
            }
        }
    }

    hiddenTimeout = undef;

}, 60000);
}

Внутри функции pause() у меня есть следующий код. Я полагаю (не уверен), что внутри кода паузы что-то не так, что не делает видео-паузу мгновенно (хотя появляется знак паузы).

pause: function() {
    clearTimers();

    if (instance.playing) {
        if (instance.type == "video") {
            if (
                !("readyState " in video) ||
                (video.currentTime > 0 &&
                    !video.paused &&
                    !video.ended &&
                    video.readyState > 2)
            ) {

                if (hls != undef) {

                    hls.stopLoad();
                }

                video.pause();
            }
        }

        playerState = 2;
    }

    target.dataset.mediaPlayback = "pause";

    instance.trigger("pause").instance;
},


Постановка задачи:

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

Мне интересно, по каким причинам видео не останавливаются сразу. Что-то не так в коде?

Я полагаю, что что-то не так в функции pause(), которая не останавливает это немедленно. Это показывает знак паузы, но активность все еще присутствует.

0 ответов

Другие вопросы по тегам