// ==UserScript== // @name AC-html5速度广告加速器 // @description 视频速度加速器,遇到html5的视频进度广告的时候,按 alt+0 即可。必须配合“计时器掌控者”一起食用 // @namespace K // @include * // @version 1.0 // @run-at document-start // @grant GM_getValue // @grant GM.getValue // @grant GM_setValue // @grant GM.setValue // @grant GM_getResourceText // @grant GM_registerMenuCommand // @downloadURL none // ==/UserScript== var _NORMAL_HZ = 60; var Config = { userHz: _NORMAL_HZ }; /** * @param callback 回调函数,需要返回是否结束True、False、否则相当于定时器 * @param period 周期,如:200ms */ function RAFFunctionEnd(callback, period) { let needCount = period / 1000 * Config.userHz; let times = needCount; let hasFinish = false; function step() { if (!hasFinish) requestAnimationFrame(step); if (times == 0) { hasFinish = true; callback(); // 只有返回true才会终止,不返回也会继续 } times--; } requestAnimationFrame(step); } function UserPromptInputHz(){ var t = prompt("输入您当前的显示器刷新率的数字:50Hz/60Hz(常见)/144Hz:"); if(/\d+/.test(t)){ Config.userHz = t; /*保存配置项*/ GM.setValue("Config", Config); } } Promise.all([GM.getValue("Config")]).then(function(data){ if(data[0] == null){ UserPromptInputHz(); }else{ Config = data[0]; } try{ GM_registerMenuCommand('AC-计时器-显示器刷新率设置', function () { UserPromptInputHz(); }); }catch (e) {} console.log("当前刷新率:" + Config.userHz); document.addEventListener("keydown", function(env){ // 如果按下的是 alt+'+' 那么直接前进10秒 if(env.key == '0' && env.altKey == true){ console.log("开始"); changTime(0,100); // 100倍速度,那么需要:10秒 = 0.1秒 = 100 ms RAFFunctionEnd(function () { console.log("结束"); changTime(0,0,false,true); }, 100); } }); });