上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖
楼主: 一因 - 

求助B站视频倍速相关

[复制链接]

该用户从未签到

1

主题

2

回帖

5

积分

助理工程师

积分
5
发表于 2024-9-13 16:07:55 | 显示全部楼层 | 阅读模式

今天想给B站视频播放添加更多倍速
姑且是添加到了5x
按钮成功添加了
但是点击4.5x,和5x都会自动跳到4x
好像是锁定了最高4x
该怎样突破这个限制

附简单代码

    const maxSpeed = 5
    const step = 0.5
    var setid =setInterval(function(){
        let container = document.querySelector('div[aria-label="倍速"]');
        if(container==null)
        {
            //console.log('添加倍速失败')
            return;
        }

        let menu = container.querySelector('ul');
        let templateItem = menu.querySelector('li.bpx-player-ctrl-playbackrate-menu-item');
        let nowSpeed = 2;
        while(nowSpeed < maxSpeed){
            let newSpeedItem = templateItem.cloneNode(true);
            nowSpeed = nowSpeed + step;
            let speedText = nowSpeed + 'x';
            newSpeedItem.setAttribute('data-value', nowSpeed);
            newSpeedItem.textContent = speedText;
            menu.insertBefore(newSpeedItem, menu.firstChild);
            //console.log('添加了'+ speedText)
        }
        clearInterval(setid );//停止定时器
    }, 2000);

    setTimeout(()=>{clearInterval(setid );},10000)
  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5960

    回帖

    6759

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6759

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2024-9-13 16:18:30 | 显示全部楼层
    直接一手document.querySelector('video').playbackRate=5
    插入进去按钮自己监听点击就可以了,被点击就把事件stop掉

    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    2

    回帖

    5

    积分

    助理工程师

    积分
    5
    发表于 2024-9-13 17:28:31 | 显示全部楼层
    李恒道 发表于 2024-9-13 16:18
    直接一手document.querySelector('video').playbackRate=5
    插入进去按钮自己监听点击就可以了,被点击就把 ...

    明白了,多谢大佬
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5960

    回帖

    6759

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6759

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2024-9-13 18:18:48 | 显示全部楼层
    一因 发表于 2024-9-13 17:28
    明白了,多谢大佬

    小问题~哥哥加油
    不会都可以论坛提问的
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    2

    回帖

    5

    积分

    助理工程师

    积分
    5
    发表于 2024-9-13 19:07:36 | 显示全部楼层
    李恒道 发表于 2024-9-13 18:18
    小问题~哥哥加油
    不会都可以论坛提问的

    方便再问一个吗?
    B站直播间的直播底部菜单要鼠标移入才显示
    就是这个元素document.querySelector('#web-player-controller-wrap-el');
    鼠标移入后这个元素下才会有所显示的那些子元素
    但我对着video发送各种事件,都不能使它显示出来
    不知道是事件不对,还是应该在其他元素处触发事件

    1. let container = document.querySelector('video');
    2.         if(container==null)
    3.         {
    4.             return;
    5.         }
    6.         let menu = document.querySelector('#web-player-controller-wrap-el');
    7.         var event = new FocusEvent('focus', {
    8.             bubbles: true,
    9.             cancelable: true
    10.         });
    11.         var focusOnVideo = setInterval(()=>{
    12.             container.dispatchEvent(event);
    13.         },0)
    14.         let children = menu.querySelectorAll('div.list-it.svelte-s2ukfj');
    15.         let all = menu.querySelectorAll('*');
    16.         clearInterval(focusOnVideo);
    17.         console.log(children)
    18.         console.log(all)
    19.         console.log('捕捉成功')
    20.         if(children.length > 0){
    21.             clearInterval(setid );//停止定时器
    22.         }
    复制代码
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5960

    回帖

    6759

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6759

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2024-9-13 19:35:44 | 显示全部楼层
    一因 发表于 2024-9-13 19:07
    方便再问一个吗?
    B站直播间的直播底部菜单要鼠标移入才显示
    就是这个元素document.querySelector('#web- ...

    b站的视频播放是很多html包裹的
    我记着是其中一层有做监听
    这个根据事件监听器列表看就可以了
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

    发表回复

    本版积分规则

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