我正在我的树莓派上使用TKinter和python创建一个带有gui的闹钟。当闹钟响的时候,我想让它开始弹钢琴。我可以很容易地做到这一点,但我还想在GUI上显示歌曲的名称,我不知道如何获得正在播放的当前歌曲。我尝试过使用管道"|",并使用">"重定向,但我没有得到任何地方。任何建议都会有帮助。
需要使用事件命令接口。从手册页:
一个示例脚本可以在pianobar源代码的contrib/目录中找到。
~/config/pianobar:
user = <username>
password = <password> (although I'd suggest password_command)
event_command = ~/.config/pianobar/event_command.py
~/config/event_command.py
#!/usr/bin/env python
import os
import sys
from os.path import expanduser, join
path = os.environ.get('XDG_CONFIG_HOME')
if not path:
path = expanduser("~/.config")
else:
path = expanduser(path)
fn = join(path, 'pianobar', 'nowplaying')
info = sys.stdin.readlines()
cmd = sys.argv[1]
if cmd == 'songstart':
with open(fn, 'w') as f:
f.write("".join(info))
这将把歌曲信息写入~/。当一首新歌开始时,配置/钢琴吧/现在播放(在手册中还有其他事件可用)。然后,您可以使用您选择的工具来解析它,以获取歌曲标题。