您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adjust video playback speed and volume with HUD showing real-time values inside the video frame. Conditional scroll blocking applied. (Script assisted by ChatGPT)
// ==UserScript== // @name Video Volume/Playback Speed Controller // @name:zh-TW 影片音量/撥放速度控制器 // @namespace https://github.com/jmsch23280866 // @version 1.0 // @description Adjust video playback speed and volume with HUD showing real-time values inside the video frame. Conditional scroll blocking applied. (Script assisted by ChatGPT) // @description:zh-TW 使用滑鼠滾輪和按鍵組合調整影片播放速度和音量,並在影片框架內顯示即時值提示框。僅在條件下阻止滾動。(此腳本由ChatGPT協助撰寫) // @author 特務E04 // @supportURL https://github.com/jmsch23280866/Video-Control-Enhancer/issues // @license MIT // @match *://*/* // @grant none // ==/UserScript== (function () { 'use strict'; let hudTimeout; // 用於控制提示框消失的計時器 let hud; // HUD 提示框元素 function createHUD() { hud = document.createElement('div'); hud.style.position = 'absolute'; hud.style.padding = '10px 20px'; hud.style.backgroundColor = 'rgba(0, 0, 0, 0.7)'; hud.style.color = 'white'; hud.style.fontSize = '16px'; hud.style.fontWeight = 'bold'; hud.style.borderRadius = '5px'; hud.style.pointerEvents = 'none'; // 防止干擾滑鼠事件 hud.style.zIndex = '9999'; hud.style.display = 'none'; return hud; } function showHUD(video, message) { if (!hud) hud = createHUD(); // 將 HUD 添加到影片框架中 if (!video.parentElement.contains(hud)) { video.parentElement.appendChild(hud); } // 設置 HUD 位置與內容 hud.textContent = message; hud.style.left = `${(video.clientWidth - hud.offsetWidth) / 2}px`; hud.style.top = `${(video.clientHeight - hud.offsetHeight) / 2}px`; hud.style.display = 'block'; // 自動隱藏 clearTimeout(hudTimeout); hudTimeout = setTimeout(() => { hud.style.display = 'none'; }, 1000); // 1 秒後自動隱藏 } document.addEventListener('wheel', (event) => { const video = event.target.closest('video'); if (!video) return; // 僅當按下 Ctrl 或右鍵時阻止滾動 if (!event.ctrlKey && event.buttons !== 2) { return; } // 阻止網頁滾動與縮放 event.preventDefault(); // 滾動方向反轉 const deltaY = -event.deltaY; // Ctrl + 滾輪:調整播放速度 if (event.ctrlKey) { const delta = Math.sign(deltaY) * 0.1; // 每次增減 0.1 倍速 const newPlaybackRate = Math.max(0.1, Math.min(video.playbackRate + delta, 16)); // 限制範圍 0.1 到 16 video.playbackRate = newPlaybackRate; showHUD(video, `播放速度:${newPlaybackRate.toFixed(1)}x`); } // 右鍵 + 滾輪:調整音量 if (event.buttons === 2) { // 右鍵 const delta = Math.sign(deltaY) * 0.05; // 每次增減 0.05 音量 const newVolume = Math.max(0, Math.min(video.volume + delta, 1)); // 限制範圍 0 到 1 video.volume = newVolume; showHUD(video, `音量:${Math.round(newVolume * 100)}%`); } }, { passive: false }); // 設定 { passive: false } 以確保可以攔截預設行為 })();