我需要在我的 Python 程序中播放声音,所以我使用了 playsound 模块:
def playy():
playsound('beep.mp3')
如何修改它以作为新线程在 main 方法中运行? 如果条件为真,我需要在主方法内运行此方法。当它为 false 时,线程需要停止。
您可能不必担心使用线程。您可以简单地调用playsound,如下所示:
def playy():
playsound('beep.mp3', block = False)
这将允许程序继续运行,而无需等待声音播放完成。
使用线程库:
from threading import Thread
T = Thread(target=playy) # create thread
T.start() # Launch created thread
由于Python多线程并不是真正的多线程(更多内容),我建议使用多进程:
from multiprocessing import Process
def playy():
playsound('beep.mp3')
P = Process(name="playsound",target=playy)
P.start() # Inititialize Process
可以随意终止
P.terminate()
如果您不想因线程问题而感到困惑,Nava可能是您更好的选择。你就可以做
from nava import play
play("beep.wav", async_mode=True)
到目前为止,它仅支持 MacOS 的
mp3
(但支持其他操作系统的 wav
)。您随时可以将 mp3
转换为 wav
。