Остановите петлю в аудиовыходе
Проблема заключается в том, что когда я использую опцию зацикливания звукового устройства для зацикливания воспроизведения, я не могу остановить его.
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 ответ
Решение
Проблема в том, что вы устанавливаете 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()
Надеюсь это поможет!