问题是当我使用sounddevice的循环选项循环播放时,我无法让它停止。
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 :(得分: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()
希望这有帮助!