Greasy Fork

来自缓存

Greasy Fork is available in English.

视频播放速度控制

通过按c和z键来控制网页视频的播放速度,按x键恢复初始速度,并在调整时显示当前播放速度,新增数字1、2、3设置固定倍速

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         视频播放速度控制
// @namespace    http://tampermonkey.net/
// @version      1.0.4
// @description  通过按c和z键来控制网页视频的播放速度,按x键恢复初始速度,并在调整时显示当前播放速度,新增数字1、2、3设置固定倍速
// @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();
        }
        // 按下数字键1,设置播放速度为1倍
        if (event.key === '1') {
            video.playbackRate = 1;
            showSpeedInfo();
        }
        // 按下数字键2,设置播放速度为2倍
        if (event.key === '2') {
            video.playbackRate = 2;
            showSpeedInfo();
        }
        // 按下数字键3,设置播放速度为3倍
        if (event.key === '3') {
            video.playbackRate = 3;
            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秒后消失
    }
})();