我正在玩一个构建像鼓机一样播放节奏的python脚本。我用PyGame来处理音频。但是,我在播放和听到实际音频之间遇到了显着/不可接受的延迟。PyGame在播放声音时有巨大的延迟
我粘贴下面的代码到交互式解释,然后一次又一次地执行的最后一行:
import pygame
pygame.mixer.init(frequency=22050, size=-16, channels=2, buffer=4096)
s = pygame.mixer.Sound('snare.wav')
s.play(loops=0, maxtime=0, fade_ms=0)
之间按下Enter键,听到的声音是我最好的猜测围绕400ms的,确实的时间显而易见且不可接受的。延迟大致与单击VLC中的播放按钮并等待音频播放相同。
我已经在Windows和Ubuntu上都尝试了这个,结果相同。我的电脑有点旧,英特尔酷睿i3 2.53GHz,但我认为这不应该是一个问题。
我该怎么办?
在循环:
此代码演示相同滞后。
for i in range(10):
print i
s.play(loops=0, maxtime=0, fade_ms=0)
sleep(2)
1)也许在解释器本身的延迟?尝试'raw_input(); s.play(loops = 0,maxtime = 0,fade_ms = 0)',然后再次按Enter。 2)圈套是从声音文件的一开始就开始的吗?如果您在Audacity中打开文件,开始和实际声音之间有多少时间? –
1)没有区别。 2)实际的声音确实在波形文件中立即开始。我也试过用其他wave文件。 –
你可以发布一个链接到声音文件,我想用我的机器测试这个 –