// ==UserScript== // @name 【伟哥自用】知识星球视频按数字键倍速播放 // @namespace http://tampermonkey.net/ // @version 0.0.2 // @description 知识星球视频,通过键盘控制: 前进 后退 暂停 开始 全屏、播放速度调节、音量控制等 // @author 通义灵码 // @match https://wx.zsxq.com/* // @icon https://www.google.com/s2/favicons?sz=64&domain=zsxq.com // @grant none // ==/UserScript== /** * 基于 https://gist.github.com/ohownew/c512223973c0e30cfff920d33711d190 * 增加倍速功能, 为了满足你的需求,我将对油猴脚本进行扩展,添加以下功能: 1. **支持更多倍速选项**:通过按键(如 `1`, `2`, `3`, `4`)切换视频播放速度。 2. **增加播放速度提示**:在页面上显示当前播放速度。 3. **增强其他功能**: - 添加“静音/取消静音”功能(使用 `M` 键)。 - 支持调整播放速度步长(例如 `+` 和 `-` 增加或减少 0.1 倍速)。 * 简单说人话就是,按数字3,4来倍速(不过界面上3.0X,4.0X这个懒得没搞)。 */ (function () { 'use strict'; console.log('知识星球视频倍速,按数字键3是3倍速,按数字键4是4倍速(不过界面倍速按钮没搞)') var isFullScreen = false; const speedOptions = [0.5, 1.0, 1.5, 2.0]; // 支持的播放速度选项 let currentSpeedIndex = 1; // 默认为正常速度 (1.0) // 创建一个提示框用于显示播放速度 const speedDisplay = document.createElement('div'); speedDisplay.style.position = 'fixed'; speedDisplay.style.top = '10px'; speedDisplay.style.right = '10px'; speedDisplay.style.backgroundColor = 'rgba(0,0,0,0.7)'; speedDisplay.style.color = '#fff'; speedDisplay.style.padding = '5px 10px'; speedDisplay.style.borderRadius = '5px'; speedDisplay.style.fontFamily = 'Arial, sans-serif'; speedDisplay.style.fontSize = '14px'; speedDisplay.style.zIndex = '9999'; speedDisplay.style.display = 'none'; // 默认隐藏 document.body.appendChild(speedDisplay); function showSpeedDisplay(text) { speedDisplay.textContent = `播放速度: ${text}x`; speedDisplay.style.display = 'block'; setTimeout(() => { speedDisplay.style.display = 'none'; }, 1000); } // 添加键盘事件监听器 document.addEventListener('keydown', function (event) { const key = event.key; // 获取视频元素 const video = document.querySelector('video'); if (!video) return; // 按下左键,将视频当前时间减去5秒 if (key === 'ArrowLeft') { video.currentTime -= 5; } // 按下右键,将视频当前时间加上5秒 else if (key === 'ArrowRight') { video.currentTime += 5; } // 按下空格键,播放或暂停视频 else if (key === ' ') { if (video.paused) { video.play(); } else { video.pause(); } } // 按下组合键 Shift + F,全屏或退出全屏 else if (key === 'F') { if (isFullScreen) { video.webkitExitFullscreen(); isFullScreen = false; } else { video.webkitEnterFullscreen(); isFullScreen = true; } } // 上键 -> 音量增加10% else if (key === 'ArrowUp') { if (video.volume < 1) { video.volume += 0.1; video.play(); } } // 下键 -> 音量减小10% else if (key === 'ArrowDown') { if (video.volume > 0) { video.volume -= 0.1; video.play(); } } // M 键 -> 静音/取消静音 else if (key === 'M' || key === 'm') { video.muted = !video.muted; } // 数字键 -> 切换播放速度 else if (key >= '1' && key <= '4') { const index = parseInt(key) - 1; if (index < speedOptions.length) { video.playbackRate = speedOptions[index]; currentSpeedIndex = index; showSpeedDisplay(speedOptions[index]); } } // '+' 键 -> 提高播放速度(步长0.1) else if (key === '+') { video.playbackRate = Math.min(video.playbackRate + 0.1, 4.0); // 最大4倍速 showSpeedDisplay(video.playbackRate.toFixed(1)); } // '-' 键 -> 降低播放速度(步长0.1) else if (key === '-') { video.playbackRate = Math.max(video.playbackRate - 0.1, 0.5); // 最低0.5倍速 showSpeedDisplay(video.playbackRate.toFixed(1)); } }); })();