Python 停止sounddevice音频输出中的环路

Python 停止sounddevice音频输出中的环路,python,loops,audio,python-sounddevice,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() 如何在循环启动后停止循环。是否可以编写这样一个函数:当调用该函数时,循环停止,音频流关闭?问题在于您正在设

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

如何在循环启动后停止循环。是否可以编写这样一个函数:当调用该函数时,循环停止,音频流关闭?

问题在于您正在设置
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()

希望这有帮助

问题是您正在设置
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()

希望这有帮助

sd.stop()不起作用吗?它是否出错或只是不停止声音输出?它不会显示任何错误,当sd.play(..loop=True)即循环打开时,sounddevice.stop()/sd.stop()不工作。但这就是我要寻找的,如何使用函数停止循环。sd.stop()不工作吗?它是否出错或只是不停止声音输出?它不显示任何错误,sounddevice.stop()/sd.stop()在sd.play(..loop=True)即循环打开时不工作。但这就是我要寻找的,如何使用函数停止循环。正是我要找的。正是我要找的。