【发布时间】:2018-08-12 12:58:53
【问题描述】:
我是 vlc 的新编写 lua 扩展。我有一个最小的 vlc 扩展,它会弹出一个对话框来激活菜单项并将消息记录到终端。如何获取正在播放的文件的当前持续时间。看了这本手册https://www.videolan.org/developers/vlc/share/lua/README.txt但没有帮助。
【问题讨论】:
我是 vlc 的新编写 lua 扩展。我有一个最小的 vlc 扩展,它会弹出一个对话框来激活菜单项并将消息记录到终端。如何获取正在播放的文件的当前持续时间。看了这本手册https://www.videolan.org/developers/vlc/share/lua/README.txt但没有帮助。
【问题讨论】:
您可以尝试使用time VLC variable
如:
function getTimePassed()
return vlc.var.get(vlc.object.input(), "time")
end
然后将其用作:
local elapsedDuration = getTimePassed()
local timeAsString = os.date("%H:%M:%S", elapsedDuration)
【讨论】:
vlc.var.get(input, "position") * vlc.var.get(input, "length")获取当前时间。我认为os.date 可能会受到当地时区的影响,最好使用自定义的东西(参见durationtoostring)。从 vlc 版本 > 2 时间以微秒为单位(是秒)
来自您引用的documentation:
input.item(): Get the current input item. Input item methods are:
:duration(): Get item's duration in seconds or negative value if unavailable.
所以,input.item():duration() 应该会为您提供所需的持续时间。
【讨论】: