VLC
how to create extension
I'm going to tell you about how to create vlc extension.
be careful.there are bugs
Recomended
move videos、per click move 1/20 simple_move_position.lua
there are some techniqu for creating dialog.
-- "Simple Move Position" -- VLC Extension -- function descriptor() return {title = "Simple Move Position"; capabilities = { "input-listener" } } end function activate() index=1 max=20 input=vlc.object.input(); d=vlc.input.item():duration()/max; local d = vlc.dialog( "Simple Move Position" ) d:add_button("next",do_next,1,1,1,1) d:show() end function deactivate() end function close() vlc.deactivate() end function do_next() vlc.var.set(input,"time",d*index) index=index+1 if index==max then vlc.deactivate() end end
move to half position half_position.lua
need capabilities = { "input-listener" }
-- "half_position.lua" -- VLC Extension -- function descriptor() return {title = "Half Position"; capabilities = { "input-listener" } } end function activate() vlc.msg.info(vlc.input.item():duration()) vlc.var.set(vlc.object.input(),"time",vlc.input.item():duration()/2) vlc.deactivate() end function deactivate() end
wait with sleep and move simple_move_position_alpha.lua
do not work,too long sleep crush vlc
vlc wait few second such a heavy sleep()
-- "simple_move_position_alpha.lua" -- VLC Extension -- -- some how it crash vlc -- function descriptor() return {title = "Zapping"; capabilities = { "input-listener" } } end function activate() local d=vlc.input.item():duration()/10; for i = 1, 9 do vlc.var.set(vlc.object.input(),"time",d*i) sleep(3); end vlc.deactivate() end function deactivate() end function sleep(n) -- seconds local t0 = os.time() while os.time() - t0 <= n do end end
check position and move simple_move_position_beta.lua
Not working because of Bug
callback check current position
-- "simple_move_position_beta.lua" -- VLC Extension -- function descriptor() return {title = "simple_move_position_beta"; capabilities = { "input-listener" } } end function activate() index=1 local input=vlc.object.input(); d=vlc.input.item():duration()/10; next=index*d+3 vlc.var.add_callback(input, "intf-event", input_event_handler, "Hello world!") end function deactivate() vlc.var.del_callback(input, "intf-event", input_event_handler, "Hello world!") end function input_event_handler(var, old, new, data) local input = vlc.object.input() if input then local t = vlc.var.get(input, "time") if t>next then index=index+1 jump=d*index; next=index*d+3 vlc.var.set(input,"time",10) if index>=10 then vlc.deactivate() end end end end