Pause videos when not visible

play/pause videos

Tính đến 18-04-2024. Xem phiên bản mới nhất.

Script này sẽ không được không được cài đặt trực tiếp. Nó là một thư viện cho các script khác để bao gồm các chỉ thị meta // @require https://update.greatest.deepsurf.us/scripts/492879/1362450/Pause%20videos%20when%20not%20visible.js

// ==UserScript==
// @name               Pause videos when not visible
// @namespace          https://greatest.deepsurf.us/users/821661
// @version            1.0
// @description        play/pause videos
// @author             hdyzen
// @match              https://*/*
// @grant              none
// @license            MIT
// ==/UserScript==
'use strict';

function observerIt(elements, threshold) {
    const observer = new MutationObserver(() => {
        const videos = document.querySelectorAll(elements);
        if (videos.length) {
            videos.forEach(video => {
                pauseVideo(video, threshold);
            });
        }
    });

    observer.observe(document.body, {
        childList: true,
        subtree: true,
    });
}

function pauseVideo(element, threshold) {
    const observer = new IntersectionObserver(
        entries => {
            entries.forEach(entry => {
                !entry.isIntersecting && !entry.target.paused ? entry.target.pause() : undefined;
            });
        },
        { threshold: threshold },
    );

    observer.observe(element);
}