【问题标题】:How to get the current playing time in vlc Lua extension script如何在 vlc Lua 扩展脚本中获取当前播放时间
【发布时间】:2018-08-12 12:58:53
【问题描述】:

我是 vlc 的新编写 lua 扩展。我有一个最小的 vlc 扩展,它会弹出一个对话框来激活菜单项并将消息记录到终端。如何获取正在播放的文件的当前持续时间。看了这本手册https://www.videolan.org/developers/vlc/share/lua/README.txt但没有帮助。

【问题讨论】:

    标签: lua vlc


    【解决方案1】:

    您可以尝试使用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 时间以微秒为单位(是秒)
    • 首先我在 lua 扩展中尝试了 vlc.player.get_time() ,但这不起作用,所以我使用了这个解决方案并且它有效,非常感谢 :) frank
    【解决方案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() 应该会为您提供所需的持续时间。

    【讨论】:

    • 以秒为单位返回总持续时间()而不是经过的持续时间()。
    猜你喜欢
    • 1970-01-01
    • 2014-09-17
    • 2013-09-29
    • 1970-01-01
    • 1970-01-01
    • 2012-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多