mplayer.py 在交互式 python shell 中工作正常,但在脚本中不工作

mplayer.py works fine in interactive python shell, but not in script

文件在 python shell 中正常播放。脚本中的相同代码未播放,但持续时间正确。怎么了?

>>> 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

播放器似乎在后台运行,并在您的脚本退出后立即停止。 (在 Python shell 中,这通常不会成为问题,因为 shell 会在等待您的输入时保持打开状态。)

为了防止播放器过早停止,您需要以某种方式保留脚本 运行 直到播放器结束。一种方法是,因为您已经知道正在播放的剪辑的持续时间,所以持续时间可能只是 sleep()

(可能有更好的方法来做到这一点,但唉,我对 mplayer 还不够熟悉。您可能需要查看 mplayer 文档,看看是否有某种方法可以让播放器唤醒您的播放完毕后编写脚本。)