Greasy Fork

Greasy Fork is available in English.

视频播放速度控制

通过按c和z键来控制网页视频的播放速度,按x键恢复初始速度,并在调整时显示当前播放速度

当前为 2024-11-16 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         视频播放速度控制
// @namespace    http://tampermonkey.net/
// @version      1.0.3
// @description  通过按c和z键来控制网页视频的播放速度,按x键恢复初始速度,并在调整时显示当前播放速度
// @author       hsq
// @match        *://*/*
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    let initialPlaybackRate = 1; // 初始播放速度

    // 创建提示框元素
    const speedInfoDiv = document.createElement('div');
    speedInfoDiv.style.position = 'fixed';
    speedInfoDiv.style.top = '10%';
    speedInfoDiv.style.left = '50%';
    speedInfoDiv.style.transform = 'translateX(-50%)';
    speedInfoDiv.style.backgroundColor = 'rgba(0, 0, 0, 0.7)';
    speedInfoDiv.style.color = 'white';
    speedInfoDiv.style.padding = '10px';
    speedInfoDiv.style.borderRadius = '5px';
    speedInfoDiv.style.fontSize = '16px';
    speedInfoDiv.style.zIndex = '999999';
    speedInfoDiv.innerText = '当前播放速度: 1x';
    document.body.appendChild(speedInfoDiv);
    speedInfoDiv.style.display = 'none'; 

    // 获取视频元素
    const video = document.querySelector('video');
    if (!video) return;

    // 检测全屏状态并调整提示框位置
    let isFullscreen = false;

    function onFullscreenChange() {
        isFullscreen = document.fullscreenElement !== null;
        if (isFullscreen) {
            speedInfoDiv.style.top = '10%';
        } else {
            speedInfoDiv.style.top = '10%';
        }
    }

    document.addEventListener('fullscreenchange', onFullscreenChange);

    // 监听键盘事件
    document.addEventListener('keydown', function(event) {
        // 按下c键,增加播放速度
        if (event.key === 'c') {
            video.playbackRate += 0.1;
            showSpeedInfo();
        }
        // 按下z键,减小播放速度
        if (event.key === 'z') {
            video.playbackRate -= 0.1;
            showSpeedInfo();
        }
        // 按下x键,恢复初始播放速度
        if (event.key === 'x') {
            video.playbackRate = initialPlaybackRate;
            showSpeedInfo();
        }
    });

    // 显示播放速度提示框
    function showSpeedInfo() {
        speedInfoDiv.innerText = '当前播放速度: ' + video.playbackRate.toFixed(1) + 'x';
        speedInfoDiv.style.display = 'block'; // 显示提示框

        // 1.5秒后隐藏提示框
        setTimeout(function() {
            speedInfoDiv.style.display = 'none';
        }, 1500); // 提示框在1.5秒后消失
    }
})();