吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 928|回复: 8
收起左侧

[其他转载] [暴力猴脚本]恢复B站全屏滚轮音量(AI生成)

[复制链接]
7s3b 发表于 2026-8-9 22:18
本帖最后由 7s3b 于 2026-8-9 22:19 编辑

原因:差不多两周前,VideoSpeedController这个视频倍速插件启用的情况下,B站网页端全屏滚轮无法调节音量了,禁用插件后正常,所以借助ChatGPT写了个脚本。

过程:本人无基础,只会改一些bat/ps1,和ChatGPT互相引导,最初是模拟方向键,但最小分度只能10%,原生功能大概2.5%,后来通过浏览器F12抓了Player.SetVolume()这个API,基本大功告成,但只能调节,音量提示的OSD搞不定,ChatGPT执着于逆向,我被他带了1小时,最后提出自己画一个,秒成功,最终差不多耗时2小时,弯路多得有点离谱但还好成了。

代码:
// ==UserScript==
// @name         Bilibili 全屏滚轮音量控制
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  B站全屏滚轮精细音量控制
// @match        https://www.bilibili.com/*
// @run-at       document-start
// @grant        none
// ==/UserScript==

(function () {
'use strict';


let currentVolume = null;
let osdTimer = null;



function isBiliFullscreen(){

    return (
        document.fullscreenElement &&
        document.fullscreenElement.classList.contains(
            'bpx-player-container'
        )
    );

}



function showVolumeOSD(v){


    const parent =
        document.fullscreenElement ||
        document.querySelector('.bpx-player-container');


    if(!parent){
        return;
    }



    let osd=document.getElementById(
        'custom-volume-osd'
    );


    if(!osd){

        osd=document.createElement('div');

        osd.id='custom-volume-osd';


        Object.assign(osd.style,{

            position:'absolute',

            left:'50%',
            top:'50%',

            transform:'translate(-50%,-50%)',

            zIndex:'999999999',

            padding:'12px 26px',

            borderRadius:'12px',

            background:'rgba(255,255,255,0.92)',

            color:'#111',

            boxShadow:'0 2px 10px rgba(0,0,0,0.15)',

            fontSize:'28px',

            fontWeight:'400',

            pointerEvents:'none',

            opacity:'0',

            transition:'opacity .2s'

        });


        parent.appendChild(osd);

    }


    // 如果全屏元素变化,重新挂载
    if(osd.parentElement !== parent){

        parent.appendChild(osd);

    }



    if(v<=0){

        osd.textContent='静音';

    }else{

        osd.textContent=
            +
            (Math.round(v*1000)/10)+
            '%';

    }



    osd.style.opacity='1';


    clearTimeout(osdTimer);


    osdTimer=setTimeout(()=>{

        osd.style.opacity='0';

    },1000);


}



function changeVolume(dir){


    const player=window.player;


    if(!player){
        return;
    }


    if(currentVolume===null){

        currentVolume=player.getVolume();

    }


    currentVolume += dir*0.025;


    currentVolume=Math.max(
        0,
        Math.min(1,currentVolume)
    );


    player.setVolume(currentVolume);


    showVolumeOSD(currentVolume);


}



document.addEventListener(
'wheel',
function(e){


    if(!isBiliFullscreen()){
        return;
    }


    if(Math.abs(e.deltaY)<Math.abs(e.deltaX)){
        return;
    }


    e.preventDefault();
    e.stopPropagation();



    if(e.deltaY<0){

        changeVolume(1);

    }else{

        changeVolume(-1);

    }


},
{
    capture:true,
    passive:false
});


})();
备注:只测试暴力猴,篡改猴未测,字体由于不喜欢粗体改得比较细,同时把喇叭图标去掉了,因为ChatGPT用的是emoji太粗了,各位有需要可以自己改回去,或者改成音符字符。

PS:应该是倍速播放动了B站利益,暗地里制造冲突了,出问题的时候B站反馈区只看到有人吐槽3倍速没了,没人说全屏音量的问题,而我这个VideoSpeedController最高可以16倍速跳广告。

免费评分

参与人数 4吾爱币 +8 热心值 +4 收起 理由
SunShuai520901 + 1 + 1 热心回复!
分享圈子 + 1 + 1 我很赞同!
happyxj + 1 + 1 谢谢@Thanks!
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

pyramidhead 发表于 2026-8-10 08:33
感谢分享实用脚本
Huanxian 发表于 2026-8-10 08:37
Avenshy 发表于 2026-8-10 09:14
daymissed 发表于 2026-8-10 09:24
谢谢分享,现在还不会使用AI。
GHenmm 发表于 2026-8-10 09:35
下载试试OK
boyklg 发表于 2026-8-10 10:31
正好需要,非常感谢了!
cao_jf 发表于 2026-8-10 10:33
膜拜技术大佬,感谢分享实用脚本!
chemhunter 发表于 2026-8-10 10:54
作为编程外行,我最近也在用AI写一些自己用的脚本,现在已经写了好几个了,大都是2000~5000行代码,迭代了很多个版本,功能齐全。
还做了很多html小工具,越来越上瘾,哈哈
之前对js语言0基础,现在已经能看懂常用的那些代码了,就是正则表达式一直没学会,这个太复杂了,需要的时候都是让AI给我写,他写的我也不知道对不对,全靠测试,有问题再让他改
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-9-11 10:25

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表