Python 在单独的线程中执行播放声音

问题描述 投票:0回答:4

我需要在我的 Python 程序中播放声音,所以我使用了 playsound 模块:

def playy():
    playsound('beep.mp3')

如何修改它以作为新线程在 main 方法中运行? 如果条件为真,我需要在主方法内运行此方法。当它为 false 时,线程需要停止。

python python-3.x multithreading python-playsound
4个回答
8
投票

您可能不必担心使用线程。您可以简单地调用playsound,如下所示:

def playy():  
    playsound('beep.mp3', block = False)

这将允许程序继续运行,而无需等待声音播放完成。


5
投票

使用线程库:

from threading import Thread
T = Thread(target=playy) # create thread
T.start() # Launch created thread

2
投票

由于Python多线程并不是真正的多线程(更多内容),我建议使用多进程:

from multiprocessing import Process

def playy():
    playsound('beep.mp3')


P = Process(name="playsound",target=playy)
P.start() # Inititialize Process

可以随意终止

P.terminate()


0
投票

如果您不想因线程问题而感到困惑,Nava可能是您更好的选择。你就可以做

from nava import play
play("beep.wav", async_mode=True)

到目前为止,它仅支持 MacOS 的

mp3
(但支持其他操作系统的
wav
)。您随时可以将
mp3
转换为
wav

© www.soinside.com 2019 - 2024. All rights reserved.