\n
\n
快捷键说明
\n
\n , 减速 | . 加速 | ,, 重置1x | .. 2倍速
\n 右Option 临时加速 | 右Option双击 永久加速
\n , + . 同时按切换响度检测\n
\n
\n\n
\n \n \n
\n \n \n \n \n
\n\n
\n ${e.isTempBoosted?'
临时加速中 (右Option)
':""}\n ${e.isVolumeBoosted?'
响度加速中
':""}\n
\n
\n\n
\n
\n
\n 开启后,当检测到音量低于阈值时自动提速 ${Ie.state.boostMultiplier}x\n
\n
\n\n ${e.volumeDetectionEnabled?`\n
\n
\n
\n \n \n \n
\n
\n 当前阈值: ${e.currentVolumeThreshold}dB (低于此值触发加速)\n
\n
\n `:""}\n
\n \n \n `,this.bindEvents();}bindEvents(){this.modal.addEventListener("click",e=>{e.target===this.modal&&this.hide();});this.modal.querySelectorAll(".speed-btn-large").forEach(e=>{e.addEventListener("click",()=>{const t=e.getAttribute("data-action");this.handleSpeedAction(t);});});const e=document.getElementById("volume-detection-toggle");e&&e.addEventListener("change",()=>{Ie.toggleVolumeDetection(),this.renderModal();});const t=document.getElementById("threshold-decrease"),n=document.getElementById("threshold-increase"),o=document.getElementById("volume-threshold-input");t&&t.addEventListener("click",()=>{Ie.adjustVolumeThreshold(-1),this.updateThresholdDisplay();}),n&&n.addEventListener("click",()=>{Ie.adjustVolumeThreshold(1),this.updateThresholdDisplay();}),o&&o.addEventListener("change",e=>{const t=parseInt(e.target.value);isNaN(t)||(Ie.state.currentVolumeThreshold=Math.max(-100,Math.min(0,t)),this.updateThresholdDisplay());});const i=document.getElementById("speed-close-btn");i&&i.addEventListener("click",()=>this.hide());}handleSpeedAction(e){switch(e){case "increase":Ie.adjustBaseSpeed(.1);break;case "decrease":Ie.adjustBaseSpeed(-0.1);break;case "reset":Ie.resetToNormalSpeed();break;case "double":Ie.setToDoubleSpeed();}this.updateSpeedDisplay();}updateSpeedDisplay(){const e=document.getElementById("speed-display-modal");if(e){const t=Ie.getCurrentSpeed();e.textContent=`${t.toFixed(2)}x`;}}updateThresholdDisplay(){const e=document.getElementById("volume-threshold-input");e&&(e.value=Ie.state.currentVolumeThreshold);}startUpdateLoop(){this.updateInterval=setInterval(()=>{this.updateSpeedDisplay();},200);}stopUpdateLoop(){this.updateInterval&&(clearInterval(this.updateInterval),this.updateInterval=null);}};const Fe=new class{constructor(){this.modal=null;}createModal(){return this.modal||(this.modal=document.createElement("div"),this.modal.id="help-modal",this.modal.className="config-modal",document.body.appendChild(this.modal)),this.modal}show(){const e=this.createModal();this.renderModal(),e.classList.add("show");}hide(){this.modal&&this.modal.classList.remove("show");}renderModal(){this.modal.innerHTML='\n