Python在单独的线程中执行playsound

时间:2018-11-11 08:13:52

标签: python python-3.x multithreading

我需要在python程序中播放声音,以便为此使用 playsound 模块。

JzvdStd jzvdStd = (JzvdStd) rootView.findViewById(R.id.video_player);
jzvdStd.setUp("https://hw20.cdn.asset.aparat.com/aparat-video/7fd1cf80cc0f254e98f8785d783bf10810811179-144p__81878.mp4"
        , "How It Works" , Jzvd.SCREEN_WINDOW_NORMAL);
//jzvdStd.thumbImageView.setImage("http://p.qpic.cn/videoyun/0/2449_43b6f696980311e59ed467f22794e792_1/640");

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

3 个答案:

答案 0 :(得分:1)

使用线程库:

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

答案 1 :(得分:1)

由于python多线程并不是真正的多线程(more on this here),因此我建议对其使用多进程:

from multiprocessing import Process

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


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

可以随意终止,P.terminate()

答案 2 :(得分:0)

您可能不必担心使用线程。您可以按如下方式简单地调用playsound:

<script src="//www.amcharts.com/lib/3/amcharts.js"></script>
<script src="//www.amcharts.com/lib/3/serial.js"></script>
<script src="//www.amcharts.com/lib/3/themes/light.js"></script>
<div id="chartdiv"></div>

这将使程序继续运行,而无需等待声音播放结束。