mplayer.py отлично работает в интерактивной оболочке Python, но не в сценарии
Нормальное воспроизведение файлов в оболочке Python. Тот же код в скрипте не воспроизводится, но получает правильную продолжительность. Что случилось?
>>> import mplayer
>>> p = mplayer.Player()
>>> p.loadfile('announce_vlad.wav')
Автор сценария:
import mplayer
p = mplayer.Player()
p.loadfile('announce_vlad.wav')
print p.length
print p.is_alive()
Вывод скрипта:
5.955873
True
1 ответ
Кажется, что игрок работает в фоновом режиме и останавливается, как только ваш скрипт завершается. (В оболочке Python это обычно не будет проблемой, поскольку оболочка будет оставаться открытой в ожидании вашего ввода.)
Чтобы предотвратить преждевременную остановку игрока, вам нужно каким-то образом поддерживать выполнение сценария до тех пор, пока игрок не закончит работу. Один из способов сделать это, поскольку вы уже знаете длительность воспроизводимого клипа, может заключаться в sleep()
на время.
(Возможно, есть лучшие способы сделать это, но, увы, я не совсем знаком с mplayer, чтобы сказать. Вы можете проверить документацию mplayer, чтобы узнать, есть ли способ заставить игрока разбудить ваш скрипт, когда он имеет закончил играть.)