У меня есть плейлист, который меняется во время игры, Mplayer не перезагружает плейлист в конце первого трека, поэтому мне нужно сделать снимок EOF, а затем перезагрузить mplayer продолжать играть. Как определить EOF с помощью mplayer и popen? Или есть более простой способ, который мне не хватает? Я проверил предложенный «дублирующий» вопрос, и я не верю, что он дает мне ответ, поскольку это захватывает конец трека/плейлиста через popen.mplayer - Как я могу обнаружить EOF в Python
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 с вашим плейлистом. Затем происходит что-то, что изменяет (или добавляет к?) Файл 'playlist.txt'. Когда mplayer достигает конца трека, вы хотите повторно запустить playlist.txt, и если он изменился, вы хотите остановить mplayer и перезапустить его с помощью нового списка воспроизведения. Это верно? –
Да, точно, у меня есть еще одна процедура, которая добавляет новые треки в 'playlist.txt. Я планировал использовать «playflag» в качестве способа проверить, играет ли mplayer, чтобы я мог вызвать его, но я не могу найти способ. Итак, в настоящее время 'play_music()' вызывается, когда новый трек добавляется в список воспроизведения, а если он не работает, запустите подпроцесс. НТН? – northwarks