如何将我的简单脚本变成非轮询版本

如何将我的简单脚本变成非轮询版本

我编写了一个简单的 bash 脚本,该脚本通过 playerctl 读取有关当前播放歌曲的元信息。现在脚本只是不必要地轮询信息。我希望仅在歌曲更改时调用脚本。我实际使用的播放器主要是 Spotify。

有什么方法可以使用信号来实现这一点吗?也许拦截 Spotify 正在发送的信号?

我(仅)对解决我的问题不感兴趣。我真的很想了解有关该主题的更多信息。如何找出进程发送了哪些信号,如何拦截和使用它们等?如果有可能的话。

答案1

Playerctl 现在有一个跟随开关,可以仅打印出更改。您还可以传递格式字符串来按照您想要的方式格式化元数据。

playerctl 元数据 --format '{{ 艺术家 }} - {{ 标题 }} {{ 持续时间(位置) }}|{{ 持续时间(mpris:length) }}' --follow

答案2

playerctl 的 github 页面有一个使用 python 轮询事件的示例。

应用程序编程接口可能会为您提供更多信息。

相关内容