如何在没有无限循环的情况下在python中播放mp3?

时间:2016-11-06 17:24:45

标签: python mp3 infinite-loop vlc playback

我正在编写一个读取字符串的程序,然后将其转换为语音并将其作为mp3播放。 但该节目不播放音乐。我已检查并发现mp3文件已创建,可以使用标准mp3播放器播放,但不能播放脚本。 我正在使用gtts模块(用于将文本转换为语音)和vlc模块(用于播放mp3) 代码是这样的。请注意,' m'是我要转换为声音的文字。

tts = gTTS(text=m, lang='en')
tts.save("greeting.mp3")
p = vlc.MediaPlayer("greeting.mp3")
p.play()

我进一步发现,当我在播放命令后提供无限循环时,mp3会播放。就像这个

tts = gTTS(text=m, lang='en')
tts.save("greeting.mp3")
p = vlc.MediaPlayer("greeting.mp3")
p.play()
while True:
    pass

有什么方法可以避免无限循环。我已经将所有必需的模块导入到项目中。

1 个答案:

答案 0 :(得分:0)

您正在做的是使用vlc lib启动子进程,当程序关闭时,它会关闭子进程。所以最快的解决方案(没有学习如何正确处理进程)就是设置睡眠计时器:

import time

tts = gTTS(text=m, lang='en')
tts.save("greeting.mp3")
p = vlc.MediaPlayer("greeting.mp3")
p.play()
time.sleep(120) # number of seconds in

但是,有solution用于查找媒体长度,因此可以从代码设置睡眠时间。