检查子进程的状态以在python中终止音频回放

时间:2016-09-26 03:48:00

标签: python subprocess kill sox

我目前正在使用sox将效果应用于音频文件并播放该文件。目前我有代码设置来创建一个新的子进程来按下按钮1时播放文件,并在按下按钮2时终止进程。

我想要做的是更改它,以便如果多次按下按钮1,它将检查以前的进程是否处于活动状态,如果是,则将其杀死,如果没有,则只是正常播放。

截至目前我的代码是:

def Button_1():
    p = subprocess.Popen(['play','playback.wav'])

def Button_2():
    p.send_signal(signal.SIGNIT)

1 个答案:

答案 0 :(得分:0)

使用p.poll()检查进程是否仍在运行。

代码看起来像这样(未经测试):

def Button_1():
    if p.poll():
        p.send_signal(signal.SIGNIT)
    else:
        p = subprocess.Popen(['play','playback.wav'])

def Button_2():
    p.send_signal(signal.SIGNIT)