Potplayer长按倍速播放

寻求一款Windows端视频播放器继续讨论:

改进了一下 usnake老哥的代码,为Potplayer播放器提供长按倍速播放,松开时恢复正常速度。

;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
2 个赞

AHK 真是万能啊

已经用ahk写了两千多行提高效率的代码用来自动化完成部分工作内容 :joy:

1 个赞

potplayer自带的 z x c快捷键就很好用。

potplayer播放控制里有很丰富的控制,就速度而言也有预设的快捷键挺方便的

  • z 重置

  • x 减速,按几下就可以减速几次:0.9→0.8→→→0.1

  • c 加速,按几下就可以加速几次:1.0→1.1→→→10.0

而且这个速度控制步长可以修改

1 个赞

刚开始用autohotkey,ahk 脚本里放了你这段脚本,后面再加别的脚本就不生效了,怎么办

把脚本全部贴出来看下

我猜你添加段代码后,又添加了一些全局热键,这就导致后面添加的热键会在#IfWinActive ahk_class PotPlayer64 ahk_exe PotPlayerMini64.exe这个条件下才生效。

解决办法就是把全局热键放在#IfWinActive这样条件语的前面。

或者在这个热键前面添加其它的条件,如:#IfWinActive ahk_exe QQ.exe,(这个条件是指在QQ窗口)

对。加了个全局打开 Windows Terminal 的,我现在就是把全局的放在前面

; Windows Terminal
#t::ToggleTerminal()

ShowAndPositionTerminal()
{
    WinShow ahk_class CASCADIA_HOSTING_WINDOW_CLASS
    WinActivate ahk_class CASCADIA_HOSTING_WINDOW_CLASS

    WinGetPos,,, Width, Height, ahk_class CASCADIA_HOSTING_WINDOW_CLASS

    SysGet, WorkArea, MonitorWorkArea
    TargetX := (A_ScreenWidth/2)-(Width/2)
    TargetY := (A_ScreenHeight/2)-(Height/2)

    WinMove, ahk_class CASCADIA_HOSTING_WINDOW_CLASS,, %TargetX%, %TargetY%
}

ToggleTerminal()
{
    EnvGet, home, HOME 
    EnvGet, localappdata, LOCALAPPDATA 

    WinMatcher := "ahk_class CASCADIA_HOSTING_WINDOW_CLASS"

    DetectHiddenWindows, On

    if WinExist(WinMatcher)
        ; Window Exists
    {
        DetectHiddenWindows, Off

        ; Check if its hidden
        if !WinExist(WinMatcher) || !WinActive(WinMatcher)
        {
            ShowAndPositionTerminal()
        }
        else if WinExist(WinMatcher)
        {
            ; Script sees it without detecting hidden windows, so..
            WinHide ahk_class CASCADIA_HOSTING_WINDOW_CLASS
            Send !{Esc}
        }
    }
    else
    {
        Run "%localappdata%\Microsoft\WindowsApps\wt.exe", %home%
        Sleep, 200
        ShowAndPositionTerminal()
    }
}

;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

又遇到一个新问题,有时候输入法是打开状态的,按下→会出现输入法的候选

我之前也考虑到了这个问题,但是打开potplayer后我看到输入法是禁用的状态,所以应该不会出现这个情况,所以也没管它(实际上是没有什么好的办法解决这个问题 :rofl:

一个最容易的解决方案:加入一段代码用于开启键盘大写,这样会发送英文的C而不出现输入法候选了,松开按键的时候再做一下恢复小写。

哈我随手写的 因为我自己不太用potplayer 可能有诸多不完善的地方 感谢修正

现在用 V2,楼主会 V2 语法嘛,试了一下GPT,不会V2语法