mirror of
https://github.com/mpv-player/mpv.git
synced 2026-05-07 20:02:49 +00:00
ba30c8c175
Currently, there is no hook which happens when the playback actually starts. The on_preloaded hook is insufficient for many cases, as many track information are unavailable at that stage. This makes it impossible to act on certain track metadata before the media is shown to the user, so the user will see the media before action for a brief moment before the properties are notified and options are changed. This adds the on_loaded hook which allows the mentioned information available.
33 lines
895 B
Lua
33 lines
895 B
Lua
local utils = require("mp.utils")
|
|
|
|
local function hardsleep()
|
|
os.execute("sleep 1")
|
|
end
|
|
|
|
local hooks = {"on_before_start_file", "on_load", "on_load_fail",
|
|
"on_preloaded", "on_loaded", "on_unload", "on_after_end_file"}
|
|
|
|
for _, name in ipairs(hooks) do
|
|
mp.add_hook(name, 0, function()
|
|
print("--- hook: " .. name)
|
|
hardsleep()
|
|
print(" ... continue")
|
|
end)
|
|
end
|
|
|
|
local events = {"start-file", "end-file", "file-loaded", "seek",
|
|
"playback-restart", "idle", "shutdown"}
|
|
for _, name in ipairs(events) do
|
|
mp.register_event(name, function()
|
|
print("--- event: " .. name)
|
|
end)
|
|
end
|
|
|
|
local props = {"path", "metadata"}
|
|
for _, name in ipairs(props) do
|
|
mp.observe_property(name, "native", function(prop, val)
|
|
print("property '" .. prop .. "' changed to '" ..
|
|
utils.to_string(val) .. "'")
|
|
end)
|
|
end
|