检查子进程的状态以杀死python中的音频播放

问题描述:

Im当前正在使用sox将效果应用于音频文件并播放文件。目前,我的代码被设置为创建一个新的子流程,以在按下按钮1时播放文件,并在按下按钮2时终止流程。检查子进程的状态以杀死python中的音频播放

我想要做的就是改变它,以便如果按钮1被多次按下,它将检查以前的过程是否是活动的,如果是的话就杀了它,如果没有,那么就照常玩。

我以现在的代码是:

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

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

使用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)