vlc.playlist.loop 自动化

vlc.playlist.loop automation

基本上我的 vlc 扩展中有这个 .lua 代码,现在我在设置 VLC 自动重复以在播放列表中循环播放时遇到问题。 我尝试将其设置为 "all"、0、1、2、true、"TRUE",但它并没有将播放列表的循环值设置为 "all"。

我也无法获取播放列表循环值。我试过 object.playlist().loop, vlc.playlist.loop.

我读了 VLC's Lua Script and Extensions page 但我仍然无法理解应该是什么

    <status>

值或其任何可接受的字符串。

function trigger()
    vlc.playlist.stop()
    vlc.playlist.sort("random")
    vlc.playlist.goto(0)
    --vlc.playlist.repeat_(<status>)
    --vlc.playlist.loop(<status>)
    vlc.playlist.play()
end

我没有尝试过,但按照文档逻辑状态应该是 niltruefalse。如果 nil (或没有参数)它将切换当前状态。 true 将启用,false 禁用循环或重复。

不确定为什么您期望循环是 "all"。

您是否删除了相应行前面的 --? 我认为同时设置两者没有意义。他们会在内部相互切换吗?

一般情况下,如果您不知道它是如何正常工作的,可以在github.com中搜索此类代码。 在你的情况下,你可以使用这个:

https://github.com/search?utf8=%E2%9C%93&q=vlc.playlist.loop+language%3ALua&type=Code&ref=searchresults

如您所见,

你可以使用这样的代码:

elseif command == "pl_loop" then
  vlc.playlist.loop()
elseif command == "pl_repeat" then
  vlc.playlist.repeat_()

 elseif c == 'loop' then
      if vlc.playlist.loop(v) then
        vlc.playlist.repeat_('off')
      end
    elseif c == 'repeat' then
      if vlc.playlist.repeat_(v) then
        vlc.playlist.loop('off')
      end

解决了,感谢 Vyacheslav 和 Piglet

现在这会将 vlc 播放列表循环设置为全部循环,但我无法打印或 vlc.msg.info playlist.loop 的值。但它最终起作用了。

function trigger()
    vlc.playlist.stop()
    vlc.playlist.sort("random")
    vlc.playlist.goto(0)
    playlist = vlc.object.playlist();
    if vlc.var.get(playlist,"loop") == false then vlc.playlist.loop() end
    vlc.playlist.play()
end