2016-09-26 5 views
0

現在、soxを使用してオーディオファイルにエフェクトを適用し、ファイルを再生します。現在、ボタン1を押すとファイルを再生する新しいサブプロセスを作成し、ボタン2を押すとプロセスを終了するコードを設定しています。サブプロセスのステータスをチェックして、Pythonでオーディオ再生を終了させます

ボタン1を複数回押すと、前のプロセスがアクティブであるかどうかを確認し、そうであればそれを殺すかどうかをチェックし、そうでない場合は通常通り再生するように変更します。

今のように私のコードは次のとおりです。

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

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

答えて

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) 
関連する問題