Linux:MPC当前歌曲输出

时间:2014-01-07 12:38:55

标签: python linux

我尝试在我的网络电台上制作自定义输出。 (MPD / MPC)

getInfo.py:

#!/bin/bash
opt=$@
mpc $opt &> /dev/null

station="`mpc --format \"[%name%]\" | head -n 1`"
title="`mpc --format \"[%title%]\" | head -n 1`"
vol="`mpc | head -n 2 | tail -n 1 | awk {'print $4'}`"

echo $station
echo $title
echo "Volume: "${vol//[()_]/}

并保存输出wach -n getInfo.py> radio.log

输出格式在这里:

Amazing Smooth and Jazz
Koop - Koop Island Blues
Volume: 100%

所以每当输出更改显示shell输出时我都需要。 怎么做?

2 个答案:

答案 0 :(得分:1)

为了帮助您入门:

#!/usr/bin/python3
from subprocess import Popen, PIPE

last_output = ""
while(1):
    proc = Popen(["mpc"], stdout=PIPE)
    output, retval = proc.communicate()
    if not output == last_output:
        print(output.decode('ascii'))
    last_output = output

我会将输出微调给你。

答案 1 :(得分:1)

如果您只是在更改时查找要更新的歌曲输出,mpc的命令current有一个--wait选项,告诉mpc阻止直到下一首歌曲显示结果,这允许您循环它。从那里你可以用它来更新你想要的任何软件。

例如:

while :; do notify-send --urgency=low -i "audio-headphones" "$(mpc current --wait)"; done &