我有一个在播放期间更改的播放列表,Mplayer不会在第一首曲目结束时重新加载播放列表,所以我需要做的是捕获EOF,然后重新加载mplayer继续播放。如何使用mplayer和popen检测EOF?还是有一种我更容易丢失的方式?我已经检查了建议的“重复”问题,我不相信它给了我答案,因为这是通过popen捕获曲目/播放列表的结尾。
def play_music():
global myplaylist
global playflag
if not playflag:
mycommand = ["mplayer -really-quiet -slave -volume 1 -playlist /home/pi/scripts/playlist.txt"]
p = subprocess.Popen(mycommand, stdin=PIPE, stdout=PIPE, stderr=PIPE, shell=True)
playflag = True
else:
pass
答案 0 :(得分:0)
我无法解决这个问题,必须有办法获得mplayer状态,然后围绕状态执行一些代码。目前我无法让mplayer重新加载播放列表,一旦添加了新的曲目,当我开始播放它时,我就不会经常让一些东西击败我!
对于未来的读者,我走了MPD / MPC路线,不是我想去的地方,但它有良好的播放列表管理,并且使用client.consume
属性它实际上会删除播放列表中的曲目这对于Jukebox场景来说非常棒。