用灵犀claw写lua脚本自动控制mpv播放器

wils
wils Lv.4 核心创作者

Lv.4 核心创作者

一直想试试mpv的lua扩展,但实在太懒没有上手🤣

就像wps里的js宏

mpv播放器里可以用lua操作对象,控制播放器的方方面面

还是用上次的听力测试mp3做例子

直接让灵犀claw写扩展:

  • 用下载目录里的mpv.exe播放media1.mp3,需要写个lua脚本扩展mpv,开始播放后3秒自动暂停,并自动快进10秒,当我按空格继续播放是从13秒开始

测试成功后,让它根据检测出的静音片段,改写脚本

这里出了个小问题,直接运行脚本没有报错,但mpv闪退,检查后发现,表格里记录静音片段结束位置用了end这个保留关键字,让灵犀检查错误修改一次后,完全正确了

得到的结果就是:

  • 用mpv播放media1.mp3时加载lua脚本进行控制

  • 遇到空白时自动暂停,且快进到下一条听力测试的开头处

  • 按空格播放下一条听力测试,再自动暂停自动快进

总的来说非常爽,就像用jsa扩展wps表格

这里用lua扩展mpv播放器

没有任何上手难度,只要提要求,很快得到满意的结果🎉

最后贴上脚本,不一定完美,但能用够用

-- auto_control.lua
-- 功能:播放时遇到每个超过2秒的空白片段自动暂停并跳过,
--       按空格继续播放到下一个空白片段,以此类推直到结束

local silence_segments = {
    { start = 24.45, stop = 29.69 },
    { start = 39.26, stop = 44.74 },
    { start = 51.33, stop = 56.64 },
    { start = 64.52, stop = 69.86 },
    { start = 77.95, stop = 81.29 },
}

local current_segment = 1
local is_paused_on_silence = false
local check_timer = nil

local function check_position()
    if is_paused_on_silence then
        return
    end
    local time_pos = mp.get_property_number("time-pos", 0)
    if mp.get_property_bool("pause", false) then
        return
    end
    if current_segment <= #silence_segments then
        local seg = silence_segments[current_segment]
        if time_pos >= seg.start - 0.1 then
            is_paused_on_silence = true
            mp.set_property_number("time-pos", seg.stop)
            mp.set_property_bool("pause", true)
        end
    end
end

mp.observe_property("pause", "bool", function(name, value)
    if not value and is_paused_on_silence then
        is_paused_on_silence = false
        current_segment = current_segment + 1
    end
end)

mp.register_event("file-loaded", function()
    current_segment = 1
    is_paused_on_silence = false
    if check_timer then
        check_timer:kill()
    end
    check_timer = mp.add_periodic_timer(0.1, check_position)
end)

mp.register_event("end-file", function()
    if check_timer then
        check_timer:kill()
        check_timer = nil
    end
end)
海南省
浏览 193
1
9
分享
9 +1
1
1 +1
全部评论 1
 
HC.旋
HC.旋 WPS资深用户Lv.3 优质创作者WPS寻令官

Lv.3 优质创作者

跟着大佬学
   福建省
举报
1
0