一因 发表于 2024-9-13 16:07:55

求助B站视频倍速相关

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

附简单代码
```
    const maxSpeed = 5
    const step = 0.5
    var setid =setInterval(function(){
      let container = document.querySelector('div');
      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)
```

李恒道 发表于 2024-9-13 16:18:30

直接一手document.querySelector('video').playbackRate=5
插入进去按钮自己监听点击就可以了,被点击就把事件stop掉

一因 发表于 2024-9-13 17:28:31

李恒道 发表于 2024-9-13 16:18
直接一手document.querySelector('video').playbackRate=5
插入进去按钮自己监听点击就可以了,被点击就把 ...

明白了,多谢大佬

李恒道 发表于 2024-9-13 18:18:48

一因 发表于 2024-9-13 17:28
明白了,多谢大佬

小问题~哥哥加油
不会都可以论坛提问的

一因 发表于 2024-9-13 19:07:36

李恒道 发表于 2024-9-13 18:18
小问题~哥哥加油
不会都可以论坛提问的

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

let container = document.querySelector('video');
      if(container==null)
      {
            return;
      }
      let menu = document.querySelector('#web-player-controller-wrap-el');
      var event = new FocusEvent('focus', {
            bubbles: true,
            cancelable: true
      });
      var focusOnVideo = setInterval(()=>{
            container.dispatchEvent(event);
      },0)
      let children = menu.querySelectorAll('div.list-it.svelte-s2ukfj');
      let all = menu.querySelectorAll('*');
      clearInterval(focusOnVideo);
      console.log(children)
      console.log(all)
      console.log('捕捉成功')
      if(children.length > 0){
            clearInterval(setid );//停止定时器
      }

李恒道 发表于 2024-9-13 19:35:44

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

b站的视频播放是很多html包裹的
我记着是其中一层有做监听
这个根据事件监听器列表看就可以了
页: [1]
查看完整版本: 求助B站视频倍速相关