停止声音设备音频输出中的循环

时间:2017-12-02 09:00:43

标签: python loops audio python-sounddevice

问题是当我使用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()

如何在循环开始后停止循环。是否可以编写一个函数,以便在调用函数时循环停止并且音频流关闭?

1 个答案:

答案 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()

希望这有帮助!