MacOS或者Windows系统自定义开源播放器mpv 实现长按2倍,3倍,4倍播放

MacOS平台:

开源播放器mpv是支持自定义脚本的. 例如我想要播放器实现长按倍速功能,方法如下:
在 MPV 配置目录( ~/.config/mpv/scripts/)中,创建一个 Lua 脚本文件,名字任意,保存即可.

我的下面脚本实现功能就是:
长按数字键 2,3,4,5 分别可以实现播放器对应的倍速功能,再按一次恢复正常, 非常适合学习党或者考研党

可以根据脚本自定义其它按键

脚本代码如下:

-- 引入 mpv 的 Lua API 模块
-- 通过 mp 对象,可以获取和设置播放器属性、绑定按键、显示 OSD 等
local mp = require 'mp'


-- 定义正常播放速度,当退出倍速模式时,会恢复到这个速度
local normal_speed = 1.0

--=========================================================
-- 切换播放速度函数:如果当前已经是目标速度,则恢复正常速度;如果当前不是目标速度,则切换到目标速度,例如:当前 1x,按 2 -> 变成 2x,当前 2x,再按 2 -> 恢复 1x
--=========================================================
local function toggle_speed(speed)

    -- 获取当前播放速度
    -- 如果获取失败,则默认返回 1
    local current = mp.get_property_number("speed", 1)

    -- 判断当前速度是否已经等于目标速度
    -- 为什么不用:current == speed,因为浮点数比较可能出现:1.9999999,2.0000001等,所以使用一个误差范围判断更加安全。
    if math.abs(current - speed) < 0.01 then

        -- 已经是该速度
        -- 恢复正常播放速度
        mp.set_property_number("speed", normal_speed)

        -- 在屏幕左上角显示提示
        mp.osd_message("Speed: 1x")

    else

        -- 当前不是目标速度
        -- 切换到指定倍速
        mp.set_property_number("speed", speed)

        -- 显示当前速度
        mp.osd_message("Speed: "..speed.."x")

    end
end



--=========================================================
-- 数字键 2
mp.add_forced_key_binding(
    "2",          -- 绑定按键
    "speed2",     -- 绑定名称(必须唯一)
    function()
        toggle_speed(2)
    end
)



--=========================================================
-- 数字键 3

mp.add_forced_key_binding(
    "3",
    "speed3",
    function()
        toggle_speed(3)
    end
)



--=========================================================
-- 数字键 4

mp.add_forced_key_binding(
    "4",
    "speed4",
    function()
        toggle_speed(4)
    end
)



--=========================================================
-- 数字键 5

mp.add_forced_key_binding(
    "5",
    "speed5",
    function()
        toggle_speed(5)
    end
)

--=========================================================
-- Q 键: 1.5倍速度
mp.add_forced_key_binding(
    "q",
    "speed1_5",
    function()
        toggle_speed(1.5)
    end
)


Windows平台

这段脚本在 Windows 下同样可以正常工作,不需要针对操作系统做任何修改,原因如下:

  • mpv 的 Lua 脚本接口是跨平台的:mpv 的 Lua API(如 mp.add_forced_key_binding、mp.set_property 等)在 Windows、macOS、Linux 下表现一致。
  • 按键绑定机制一致:mpv 的按键事件(down/up)在各主流操作系统下都支持,脚本逻辑不会因平台不同而失效。
  • 上面脚本本身无平台相关代码:你的脚本没有用到任何与操作系统相关的路径、命令或 API

在 Windows 下,脚本应放在 C:\Users<你的用户名>\AppData\Roaming\mpv\scripts\ 目录下(或 mpv 配置目录的 scripts 文件夹)

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容