mplayer - 如何在Python中检测EOF

时间:2016-08-19 18:46:32

标签: python mplayer

我有一个在播放期间更改的播放列表,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

1 个答案:

答案 0 :(得分:0)

我无法解决这个问题,必须有办法获得mplayer状态,然后围绕状态执行一些代码。目前我无法让mplayer重新加载播放列表,一旦添加了新的曲目,当我开始播放它时,我就不会经常让一些东西击败我!

对于未来的读者,我走了MPD / MPC路线,不是我想去的地方,但它有良好的播放列表管理,并且使用client.consume属性它实际上会删除播放列表中的曲目这对于Jukebox场景来说非常棒。