Greasy Fork

Greasy Fork is available in English.

通用_次要页面音视频处理

根据配置暂停或静音非聚焦页面。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name               通用_次要页面音视频处理
// @name:zh-CN         通用_次要页面音视频处理
// @name:en-US         Uni_Secondary pages multimedia processer
// @description        根据配置暂停或静音非聚焦页面。
// @version            1.0.6
// @author             LiuliPack
// @license            WTFPL
// @namespace          https://gitlab.com/LiuliPack/UserScript
// @match              *://*/*
// @run-at             document-end
// ==/UserScript==

'use strict';

// 定义模式(Mode)和刚打开(Init)变量,快捷元素选择($(元素定位符))函数
// 处理模式 0 即暂停,1 即静音
// Processing mode 0 is pause, 1 is mute
let Mode = 0,
    Init = true,
    $ = ele => document.querySelector(ele);

// 监听页面可见性
document.addEventListener("visibilitychange", function() {
    document.querySelectorAll('video, audio').forEach((media) => {
        // 定义播放结束`End` 变量
        let End = $('video').duration === $('video').currentTime;

        if(Init) {
            // 检测是否为刚打开页面,是的话定义为 false
            Init = false;
        }else if(!End) {
            // 如果视频未播完
            // 定义页面可见状态
            let Stat = document.hidden;

            // 判断状态
            if(Stat && Mode === 0) {
                // 如果页面不可见且为暂停模式,暂停音视频
                media.pause();
            }else if(Stat && Mode === 1) {
                // 如果页面不可见且为静音模式,暂停音视频
                media.muted = true;
            }else if(!Stat && Mode === 0) {
                // 如果页面可见且为暂停模式,播放音视频
                media.play();
            }else if(!Stat && Mode === 1) {
                // 如果页面可见且为暂停模式,播放音视频
                media.muted = false;
            }
        }
    });
});