我正在玩构建一个像鼓机一样播放节奏的 python 脚本。我使用 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)
从按下回车键到听到音频之间的时间我最好猜测是 400 毫秒左右,而且确实很明显且无法接受。延迟与我单击 VLC 中的播放按钮并等待音频播放大致相同。
我在 Windows 和 Ubuntu 上都试过这个,结果相同。我的电脑有点旧,Intel Core i3,2.53GHz,但我认为这应该不是问题。
我能做些什么呢?
在一个循环中:
此代码演示了相同的延迟。
for i in range(10):
print i
s.play(loops=0, maxtime=0, fade_ms=0)
sleep(2)