2017-12-02 10 views
0

サウンドデバイスのループオプションを使用して再生をループしているときに問題が発生し、停止することができません。サウンドデバイスのオーディオ出力でループを停止する

import soundfile as sf 
import sounddevice as sd 

weight = 1.4 

data, fs = sf.read('sound.wav') 
sd.play(data * weight, fs, blocking=True,loop=True) 
sd.stop() 

ループが開始された後、ループを停止する方法。関数が呼び出されたときにループが停止し、オーディオストリームが閉じられるような関数を書くことは可能ですか?

+0

sd.stop()は機能しませんか?それは間違っているか、単に音の出力を止めませんか? –

+0

sd.play(.... loop = True)、つまりループがオンの場合、sounddevice.stop()/ sd.stop()はエラーを表示しません。 –

+0

しかし、それは私が探しているもの、どのように関数を使ってループを止めるかです。 –

答えて

2

問題は、これが終了する前に他の機能を実行することを許可しないblocking=Trueを設定していることです。 loop=Trueと組み合わせると、無限ループが生成されます。何をしたい

は次のとおりです。

import soundfile as sf 
import sounddevice as sd 

weight = 1.4 

data, fs = sf.read('sound.wav') 
sd.play(data * weight, fs,loop=True) 
sd.stop() 

は、この情報がお役に立てば幸い!

+0

まさに私が探していたものです。 –

関連する問題