自研 - 母带吧 - 调整音量

调整在线播放器音量。

当前为 2024-07-24 提交的版本,查看 最新版本

// ==UserScript==
// @name               自研 - 母带吧 - 调整音量
// @name:en_US         Self-made - MuDaiBa MUSIC BBS - Adjust volume
// @description        调整在线播放器音量。
// @description:en_US  Adjust the volume of the online player.
// @version            1.0.0
// @author             CPlayerCHN
// @license            MulanPSL-2.0
// @namespace          https://www.gitlink.org.cn/CPlayerCHN
// @match              https://mudaiba.com/thread-*.htm
// @icon               https://mudaiba.com/view/img/favicon.ico
// @grant              GM_setValue
// @grant              GM_getValue
// @grant              GM_registerMenuCommand
// @run-at             document-end
// @noframes
// ==/UserScript==

(function() {
    'use strict';

    // 从「音量值」数据中提取并定义对应变量,定义「获取音量值」和「调整音量」函数。
    var volume = GM_getValue("volume");

    function getVolume() {

        // 判断「音量值」变量是否被定义且数值是否合规,如果不满足判断就记录并保存。
        do {

            volume = window.prompt("请输入您期望的音量。", GM_getValue("volume", 10));
            GM_setValue("volume", volume);

        } while(typeof volume !== undefined && !(volume > 0 && volume <= 100));

    };
    function adjustVolume(volume) {

        // 将修改音量的代码注入页面尾部,并在执行后自动销毁。
        const script = document.createElement('script');

        script.textContent = `ap4.volume(${volume * 0.01}, true);`;
        document.body.appendChild(script);

        script.remove();

    }


    // 调整音量;判断「音量值」是否被定义,如果通过判断就执行「获取音量值」函数。
    if(typeof volume === "undefined") {

        getVolume();

    }
    // 调整音量;增加「修改音量」菜单命令。
    GM_registerMenuCommand("设置新音量", () => {

        getVolume();
        adjustVolume(volume);

    });
    // 调整音量;监听按下`.`键。
    document.addEventListener('keydown', function(event) {

        if (event.key === '.') {

            getVolume();
            adjustVolume(volume);

        }

    });
    // 调整音量;脚本执行时。
    adjustVolume(volume);

})();