您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
2021/7/25 下午5:48:09
当前为
// ==UserScript== // @name 動畫瘋 影片撥放速度 // @namespace Violentmonkey Scripts // @match https://ani.gamer.com.tw/animeVideo.php // @grant none // @version 1.1 // @author bigiCrab // @description 2021/7/25 下午5:48:09 // 1. 自動使用上次的撥放速度 // 2. shift+滾輪調整撥放速度(0.1~16) // // ==/UserScript== // videojs 仔很慢 $(window).load(() => { console.log("window load"); main(); }); async function main() { // 等到videojs 出現 while (window.videojs === undefined) { console.error("video element not found"); await sleep(500); } let ani_video = videojs.getPlayer("ani_video"); // 等到video出現 while (ani_video === undefined) { ani_video = videojs.getPlayer("ani_video"); await sleep(500); } // if (!ani_video) { // console.error("video element not found", ani_video); // return; // } // 看videojs有甚麼狀態可用 // test_trackAllEvent(); loadAndTrackSavePlayRate(); scrollToAdjustSpeed(); function loadAndTrackSavePlayRate() { // 上次存的撥放速度 const lastTimePlayBackRate = localStorage.getItem("bigi_videoPlayBackRate"); // apply play rate ani_video.on("canplay", (e) => { if (lastTimePlayBackRate !== null) { console.log(`設定為上次的撥放速度:${lastTimePlayBackRate}`); ani_video.playbackRate(lastTimePlayBackRate); } }); // save play rate ani_video.on("ratechange", (e) => { let newestRate = ani_video.playbackRate(); // console.log(`撥放速度變動..存起來:${newestRate}`); localStorage.setItem("bigi_videoPlayBackRate", newestRate); }); } function scrollToAdjustSpeed() { const speedStap = 0.1; $("video").on("wheel", (event) => { if (event.shiftKey) { event.preventDefault(); // console.log("shift捲動", event.originalEvent); let speedVector = event.originalEvent.deltaY < 0 ? 1 : -1; let newestRate = ani_video.playbackRate(); let calcSpeed = Math.round((newestRate + speedVector * speedStap) * 100) / 100; calcSpeed = Math.min(Math.max(0.1, calcSpeed), 16); ani_video.playbackRate(calcSpeed); } }); } function test_trackAllEvent() { // 找到的都在上面 let events = [ "subtitles", "captions", "descriptions", "chapters", "metadata", "none", "metadata", "auto", "alternative", "captions", "descriptions", "main", "main-desc", "sign", "subtitles", "translation", "commentary", "onchange", "onaddtrack", "onremovetrack", "onchange", "onaddtrack", "onremovetrack", "oncuechange", "onenter", "onexit", "loadstart", "progress", "suspend", "abort", "error", "emptied", "stalled", "loadedmetadata", "loadeddata", "canplay", "canplaythrough", "playing", "waiting", "seeking", "seeked", "ended", "durationchange", "timeupdate", "play", "pause", "ratechange", "resize", "volumechange", "error", "change", "addtrack", "removetrack", "cuechange", "error", "load", "enter", "exit", ]; ani_video.on(events, (e) => { console.log(e); }); } } function sleep(ms) { return new Promise((resolve) => setTimeout(resolve, ms)); }