通过命令行使用 VLC 的热键

通过命令行使用 VLC 的热键

vlc --help除其他内容外,还列出了以下命令行选项:

 Hot keys
      --global-key-toggle-fullscreen <string>
                                 Fullscreen
      --key-toggle-fullscreen <string>
                                 Fullscreen
      --global-key-leave-fullscreen <string>
                                 Leave fullscreen
      --key-leave-fullscreen <string>
                                 Leave fullscreen
      --global-key-play-pause <string>
                                 Play/Pause
      --key-play-pause <string>  Play/Pause

当我尝试使用它们时,它们根本不起作用。我不明白为什么它们<string>也必须接受参数。

我的情况是这样的:

  • 我使用 UI 或无头模式运行 VLC
  • 我执行例如vlc --key-next foo(用于触发“下一步”),foo作为一个虚拟参数
  • VLC 不会抱怨(与不传递字符串时不同),但命令没有效果

命令行触发的 VLC 热键的工作示例是什么?

答案1

通过使用,vlc --key-next foo您已将“Next”分配给名为“Foo”的键,但您可能没有该键。;)

由修饰键组成<string>Alt、Shift、Ctrl、Meta、Command) 由破折号 ( -) 分隔,并由键终止 (*a...z、+、=、-、','、+、<、>、`、/、;、'、\、[、]、、左、右、上、下、空格、Enter、F1...F12、Home、End、Menu、Esc、Page Up、Page Down、Tab、Backspace、鼠标滚轮向上和鼠标滚轮向下)。

因此vlc --key-next alt-n将设置Alt+n转到下一个加载的媒体文件。

或者vlc --key-next "Page Down"将设置Page Down

更多信息这里

答案2

您所要求的几乎肯定是不可能的。命令行参数在启动时传递给程序。加载后,任何更改的设置都将生效,但您不能再传递任何参数。

当你运行时,vlc --whatever它会尝试启动另一个实例,vlc该实例将使用设置的选项加载--whatever。如果你在首选项中设置了“仅允许一个实例” vlc,这将不起作用,并且看起来像“vlc 没有抱怨”。你可能能够从视频局域网服务器但我从未使用过它,也不知道。您不会从任何未在某种服务器或侦听模式下运行的“正常”程序中获得此信息。

在此处输入图片描述

更好的问题是为什么您需要这种行为吗?如果您正常显示vlc输出,只要 vlc 窗口具有鼠标焦点,您就可以正常使用热键。即使您没有,例如,在终端中观看 vlc通过 ssh 连接到使用 ASCII art 输出模式的无头服务器,只要终端具有ssh焦点,热键就会起作用。您是否试图以某种方式编写此行为的脚本?这可能是XY问题

答案3

terdon 的评论是正确的,但有一处小改动。正如发布的那样,由于大小写问题,这些命令在我的系统 (macOS) 上不起作用。如果您在 pgrep 命令中添加 -i 标志以忽略大小写,或者将 VLC 参数大写,则这些命令具有规定的效果。

如果您想要的只是暂停/取消暂停单个 vlc 实例,您可以执行kill -STOP $(pgrep -i vlc)暂停和kill -CONT $(pgrep VLC)取消暂停操作。

相关内容