mplayer - 如何检测 Python 中的 EOF
mplayer - How can I detect EOF in Python
我有一个在播放过程中会改变的播放列表,Mplayer 不会在第一首曲目的结尾重新加载播放列表,所以我需要做的是捕获 EOF,然后重新加载 mplayer 以继续播放。如何使用 mplayer 和 popen 检测 EOF?还是有更简单的方法让我失踪?我已经检查了建议的 'duplicate' 问题,但我不相信它会给我答案,因为这是通过 popen 捕获 track/playlist 的结尾。
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
好吧,我无法解决这个问题,必须有一种方法可以获取 mplayer 状态,然后围绕该状态编写一些代码。就目前而言,一旦添加了新曲目,我就无法让 mplayer 重新加载播放列表,而当我这样做时,它又从头开始了——我很少让某些东西打败我!
对于未来的读者,我走 MPD/MPC 路线,不是我想去的地方,但它有很好的播放列表管理和使用 client.consume
属性 它实际上删除曲目从播放列表中播放,这非常适合自动点唱机场景。
我有一个在播放过程中会改变的播放列表,Mplayer 不会在第一首曲目的结尾重新加载播放列表,所以我需要做的是捕获 EOF,然后重新加载 mplayer 以继续播放。如何使用 mplayer 和 popen 检测 EOF?还是有更简单的方法让我失踪?我已经检查了建议的 'duplicate' 问题,但我不相信它会给我答案,因为这是通过 popen 捕获 track/playlist 的结尾。
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
好吧,我无法解决这个问题,必须有一种方法可以获取 mplayer 状态,然后围绕该状态编写一些代码。就目前而言,一旦添加了新曲目,我就无法让 mplayer 重新加载播放列表,而当我这样做时,它又从头开始了——我很少让某些东西打败我!
对于未来的读者,我走 MPD/MPC 路线,不是我想去的地方,但它有很好的播放列表管理和使用 client.consume
属性 它实际上删除曲目从播放列表中播放,这非常适合自动点唱机场景。