通过插件实现PotPlayer长按倍速播放,松开恢复的功能
2024.9更新:修改了松开右键后的恢复速度逻辑:从原来的恢复1.0x速度改为恢复为用户原本速度(详见AHK2代码段)
这几天在实验室学习验证相关的网课,无奈该课程录屏废话太多,本地播放器又没有哔哩哔哩|B站 那种按住方向键→就3倍速播放,松开按键就恢复的功能。于是我搜集了一些资料,自己实现了一下。。
参考资料
我寻思这么常见的需求,理应有很多前人做过,一搜索还真找到一些东西:
在这个小众论坛网站里面,有前人通过AHK快捷键脚本工具实现了此功能:
;Potplayer播放器长按倍速播放
#IfWinActive ahk_class PotPlayer64 ahk_exe PotPlayerMini64.exe
Right:: ; 长按0.3秒方向右键进行倍速播放,松开时恢复
KeyWait, Right, T0.3
if ErrorLevel {
Send, cccccccccccccccccccc ; 调整此数值修改速度
ToolTip, >>>
KeyWait, Right ; 松开按键恢复正常速度
Send, z
ToolTip
} else Send {Right}
return
我兴高采烈地下下来一看,代码版本太老,在新版AHK软件已经无法运行。。。
正篇
研究了一下AHK软件,发现还是挺好用的,自己学习了一下api文档,也照着上面的思路,写了一段AHK V2语法格式的代码:
#Requires AutoHotkey v2.0
; Potplayer 长按倍速播放
#HotIf WinActive("ahk_class PotPlayer64 ahk_exe PotPlayerMini64.exe")
Right:: ; 模仿B站长按快进功能:长按0.3秒方向右键进行倍速播放,松开时恢复
{
if !(KeyWait("Right", "T0.3")) { ; 按下按键持续0.3s
Send("cccccccccccccccccccc") ; 加速x3播放,每个c表示+0.1x,可以自行修改c的数量
ToolTip(">>>") ; 脚本执行的提示符
KeyWait("Right") ;松开按键
; Send("z") ; 播放速度复原, 旧版代码
Send("xxxxxxxxxxxxxxxxxxxx") ;输入等量的x可以恢复为原速。而不是直接回1x
ToolTip("")
}
else {
Send("{Right}") ; 如果按键按下未持续0.3s,则触发Potplayer原始快捷键
}
return
}
下面这段代码就是上面原始代码移植到 AHK v2版本。
经过测试,功能均正常:(按下→0.3s触发3倍速播放,松开按键恢复1倍速度)
关于AHK工具
基本上这个开源小工具安装即用,没啥难度。
官网如下:
AutoHotKey: The ultimate automation scripting language for Windows.