问题描述
我有排序动画,我想为访问的每个数据发出声音。到目前为止,我正在使用pyaudio,并且我具有生成WAV数据的功能。 排序完成后,这是零件代码。它将条形变为绿色,并播放从索引0到N的声音。
def finish_sorting():
for x in range(len(array)):
bar_list[x].fill_color(green)
bar_list[x].draw(screen)
Bar.update_bar(pygame)
test_audio.play(array[x] + 100,0.4) # i add offset 100 because smallest data is 50
动画在每个持续时间都会延迟,如果我将持续时间设置得较低,则会发出奇怪/ NG的声音。 播放功能看起来像这样
import pyaudio
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 22050
p = pyaudio.PyAudio()
def play(frequency: float,duration: float):
frames = data_for_freq(frequency,duration) # generate frame data
stream = p.open(format=FORMAT,channels=CHANNELS,rate=RATE,output=True)
stream.write(frames)
stream.stop_stream()
stream.close()
我也尝试了pyglet模块,但是我只找到直接播放wav文件的功能。像这样
sound_1 = pyglet.resource.media("1kHz.wav",streaming=False)
我可能会为每个频率数据生成自己的wav文件,并使用pyglet播放它,但我认为效率不高。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)