您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
可以使用按键 z(恢复1倍速)、x(减0.1)、c(加0.1)调整倍速,支持0.1-5倍速,支持记住播放速度
当前为
// ==UserScript== // @name 自定义哔哩哔哩视频播放速度 // @namespace http://tampermonkey.net/ // @version 0.1.2 // @description 可以使用按键 z(恢复1倍速)、x(减0.1)、c(加0.1)调整倍速,支持0.1-5倍速,支持记住播放速度 // @author felix // @match https://www.bilibili.com/video/* // @grant GM_registerMenuCommand // @grant GM_unregisterMenuCommand // ==/UserScript== (function () { 'use strict'; var STORAGE_KEY = { BILIBILI_VIDEO_SPEED: "bilibili_video_speed" } var SETTING = { STEP_SIZE: 0.1, MAX_SPEED: 5, MIN_SPEED: 0.1, REMEMBER_SPEED_MENU_ID: null }; var autoAddInterval = setInterval(addButton, 5000); function addButton() { clearInterval(autoAddInterval); var viewboxReport = document.getElementById("arc_toolbar_report"); var div = document.createElement("div"); div.innerHTML = '<button id="reduce" style="width:15px;margin:0 3px">-</button><button style="width:30px"><sapn id="speed">1<span/></button><button id="add" style="width:15px;margin:0 3px">+</button>'; viewboxReport.appendChild(div); document.getElementById("reduce").onclick = function () { reduceSpeed(); }; document.getElementById("add").onclick = function () { addSpeed(); }; loadSpeed(); } function loadSpeed() { var speed = localStorage.getItem(STORAGE_KEY.BILIBILI_VIDEO_SPEED); if (speed) { changeSpeed(speed) loadRemoveSpeedMenu(); } else { changeSpeed(1) loadSaveSpeedMenu(); } } function reduceSpeed(STEP_SIZE) { if (!STEP_SIZE) STEP_SIZE = SETTING.STEP_SIZE; var speedSpan = document.getElementById("speed"); var playSpeed = Number((Number(speedSpan.innerText) * 10 - STEP_SIZE * 10) / 10).toFixed(1); changeSpeed(playSpeed); } function addSpeed(STEP_SIZE) { if (!STEP_SIZE) STEP_SIZE = SETTING.STEP_SIZE; var speedSpan = document.getElementById("speed"); var playSpeed = Number((Number(speedSpan.innerText) * 10 + STEP_SIZE * 10) / 10).toFixed(1); changeSpeed(playSpeed); } function changeSpeed(playSpeed) { if (playSpeed && playSpeed >= SETTING.MIN_SPEED && playSpeed <= SETTING.MAX_SPEED) { document.querySelector('video').PLAYBACKRATE = playSpeed; var speedSpan = document.getElementById("speed"); speedSpan.innerText = playSpeed; } } function setSpeedToStorage() { localStorage.setItem(STORAGE_KEY.BILIBILI_VIDEO_SPEED, document.querySelector('video').playbackRate); GM_unregisterMenuCommand(SETTING.remember_speed_menu_id); loadRemoveSpeedMenu(); } function removeSpeedFromStorage() { localStorage.removeItem(STORAGE_KEY.BILIBILI_VIDEO_SPEED); GM_unregisterMenuCommand(SETTING.remember_speed_menu_id); loadSaveSpeedMenu(); } function loadSaveSpeedMenu() { var remember_speed_menu_id = GM_registerMenuCommand("记住播放速度", setSpeedToStorage); SETTING.remember_speed_menu_id = remember_speed_menu_id; } function loadRemoveSpeedMenu() { var remember_speed_menu_id = GM_registerMenuCommand("忘记播放速度", removeSpeedFromStorage); SETTING.remember_speed_menu_id = remember_speed_menu_id; } // 键盘快捷键 document.onkeydown = function (e) { if (e.target.nodeName !== 'BODY') return; if (/^[zxcZXC]$/.test(e.key)) { if (e.key === 'z' || e.key === 'Z') { changeSpeed(1); } if (e.key === 'x' || e.key === 'X') { reduceSpeed(); } if (e.key === 'c' || e.key === 'C') { addSpeed(); } } }; })();