我正在尝试在python for linux中创建一个小部件,它可以播放/暂停当前歌曲,调整音量,切换歌曲等。
到目前为止,我可以使用pulseaudio的 media.role 属性获取在后台运行的音乐播放器的进程名称。但我无法为每个玩家提供shell命令,因为每个玩家的选项都不同。
import subprocess as sp
output = sp.check_output("pacmd list-sink-inputs", shell=True)
index = 0
while index>=0 and index<len(output):
first = output.find("role = \"music",index+1)
index = first
if index<=0:
break
index = output.rfind("properties",0,index)
test = output.find("application.name",index)
index = output.find("process.id",index)
index = output.find("\"",index)
index = index+1
index2 = output.find("\"",index)
num = output[index:index2]
print "pid="+num
proc = sp.check_output("cat \"/proc/"+num+"/comm\"", shell=True)
proc = proc[:-1]
print proc
index = output.find("media.name",index2)
输出:
pid=9895
gmusicbrowser
也许我从错误的方向接近它,但目标是让它与任何玩家一起运行。
有解决方法吗?