有无实现播放视频时用滚轮快进快退的方法呀

昨天看到用鼠标拖动快进快退的帖子,安装后确实可以用。
我就想到 鼠标的左右滚动键如果用来快进快退,岂不是更方便,直接滚动就可以,而且也很精准,手完全不需要动键盘。
我一直用Global Speed设置快捷键 快进快退,但是他不可以设置鼠标滚轮

1 Like

FlashViewer-HTML5视频增强 by NLF、hoothin

在源代码3554行后添加:

 // 滚轮调节进度,向上后退,向下前进
 target.addEventListener('wheel', function (e) {
     clearTimeout(speedUpTimer);
     if (target.ended) return;
     let direction = Math.sign(e.wheelDelta || -e.detail);
     // 步长为1s,可以根据自己习惯调整灵敏度
     target.currentTime += direction > 0 ? -1 : 1;
     e.preventDefault();
 });

滚轮调节可能会和网站自带的滚轮事件冲突,比如在b站全屏状态下会与调节音量同时生效

好用的话可以给“hoothin”大佬点个Star :smiling_face_with_three_hearts:

2 Likes

MPV最基础那个播放器就是滚轮控制播放进度,挺方便的说,potplayer好像也可以设置,其他的用ahk?

potplayer是可以的,我试过, 主要研究的还是浏览器里在线播放啦

你好,能不能改成滚轮左右滚动实现呢,我搜索了一下,没找到怎么修改。 :smiley:
上下滚 影响看网页,但是左右滚动就没事了,一般视频网页不会用到左右滚动
:heart:

deltaX就是水平滚动

016274F7
改为X后 滚轮左右、上下都是调解进度啦 哈哈哈

Video Dominator

有edge商店的 这个选项很多 ,除了没有汉语之外,别的都很好 完全可以替代Global Speed

体验了一下 [Video Dominator ],发现对快捷键的支持不太好,也不显示当前速度。于是根据@ Hoothin的代码,在CTGPT.CN弄了一晚上,让ai给我弄出来了这样一段代码,替换手搓大佬的代码,在脚本里可以正常使用。之前代码上下左右滚动都是进度调节,现在主要实现的功能:

  1. 上下调整音量
  2. 左右调节进度
  3. 会在左上角显示一个提示

这段代码实现了在 HTML5 视频播放器中使用鼠标滚轮调整音量和播放进度的功能,并在屏幕上实时显示音量百分比和播放进度。同时,为了提高用户体验,每次只会在屏幕上显示一个输出结果,并在一定时间后自动消失。

target.addEventListener('wheel', function (e) {
  clearTimeout(speedUpTimer);
  if (target.ended) return;
  let direction = Math.sign(e.wheelDelta || -e.detail);
  // 上下滚动为调整音量
  if (e.deltaY !== 0) {
    target.volume += direction > 0 ? 0.05 : -0.05;
    // 显示音量百分比
    let volumePercentage = Math.round(target.volume * 100);
    let volumeDisplay = document.querySelector('#volume-display');
    if (!volumeDisplay) {
      volumeDisplay = document.createElement('div');
      volumeDisplay.id = 'volume-display';
      volumeDisplay.style.position = 'fixed';
      volumeDisplay.style.top = '80px';
      volumeDisplay.style.left = '80px';
      volumeDisplay.style.color = 'white';
      volumeDisplay.style.backgroundColor = 'rgba(0, 0, 0, 0.7)';
      volumeDisplay.style.padding = '5px';
      volumeDisplay.style.borderRadius = '5px';
      document.body.appendChild(volumeDisplay);
    }
    volumeDisplay.innerText = volumePercentage + '%';
    // 延迟一段时间后移除显示
    setTimeout(function() {
      document.body.removeChild(volumeDisplay);
    }, 500);
  }
  // 左右滚动为调整进度
  if (e.deltaX !== 0) {
    target.currentTime += direction > 0 ? -5 : 3;
    // 显示播放进度
    let currentTime = Math.round(target.currentTime);
    let duration = target.duration;
    let currentDisplay = formatTime(currentTime);
    let durationDisplay = formatTime(duration);
    let progressDisplay = document.querySelector('#progress-display');
    if (!progressDisplay) {
      progressDisplay = document.createElement('div');
      progressDisplay.id = 'progress-display';
      progressDisplay.style.position = 'fixed';
      progressDisplay.style.top = '80px';
      progressDisplay.style.left= '80px';
      progressDisplay.style.color = 'white';
      progressDisplay.style.backgroundColor = 'rgba(0, 0, 0, 0.7)';
      progressDisplay.style.padding = '5px';
      progressDisplay.style.borderRadius = '5px';
      document.body.appendChild(progressDisplay);
    }
    progressDisplay.innerText = `${currentDisplay} / ${durationDisplay}`;
    // 延迟一段时间后移除显示
    setTimeout(function() {
      document.body.removeChild(progressDisplay);
    }, 500);
  }
  e.preventDefault();
});

这样写的话,无极滚轮恐怕会卡死,移除时大概也会有很多报错,因为元素不一定存在。如果滚轮事件不小心被提示框接管,函数会失效。
可以尝试把提示框塞入工具栏,用opacity或者display去隐藏,再用css加鼠标穿透

这对我来说太难了。我完全不会编程。全靠ai改的。我看不懂代码 :pray:现在也勉强可以用。 :smiley: