求助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)
``` 直接一手document.querySelector('video').playbackRate=5
插入进去按钮自己监听点击就可以了,被点击就把事件stop掉
李恒道 发表于 2024-9-13 16:18
直接一手document.querySelector('video').playbackRate=5
插入进去按钮自己监听点击就可以了,被点击就把 ...
明白了,多谢大佬 一因 发表于 2024-9-13 17:28
明白了,多谢大佬
小问题~哥哥加油
不会都可以论坛提问的 李恒道 发表于 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:07
方便再问一个吗?
B站直播间的直播底部菜单要鼠标移入才显示
就是这个元素document.querySelector('#web- ...
b站的视频播放是很多html包裹的
我记着是其中一层有做监听
这个根据事件监听器列表看就可以了
页:
[1]