0

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

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

4

1 回答 1

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

希望这可以帮助!

于 2017-12-02T18:41:40.017 回答