通过按c和z键来控制网页视频的播放速度,按x键恢复初始速度,并在调整时显示当前播放速度,新增数字1、2、3设置固定倍速
// ==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秒后消失
}
})();