Pygame内存中的波形播放

时间:2012-03-11 04:32:24

标签: python pygame wave

我正在使用Python Wave库生成wave,并使用自定义文件writer将它们存储在内存中。但是每当我尝试用Pygame播放它们时,播放速度都非常慢。如果我将完全相同的对象保存到文件中,然后再播放,pygame会以正常速度播放它。

(某人缩写)代码:

pygame.init()
pygame.mixer.init(size=8, buffer=2048, frequency=44100) #Thats the correct freq, but it does the same regardless
x = pygame.mixer.Sound(obj) #Load the output of the wave writer
x.play()

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

根据您提供的详细信息,我最好的猜测是您没有为pygame.mixer.init()指定所有参数,或者指定了一些错误的参数。您的评论坚持频率是正确的,但这不是唯一的因素。大小(8位,无符号)是一个因子,通道(代码中未提及但根据Pygame文档默认为2)。

当您创建wave时,将其写入文件,然后要求Pygame播放该wave文件,所有必要的参数都由wave标头定义。

因此,仔细检查位宽(大小参数),指定channels参数,如果这不能解决问题,请编辑原始问题以指定用于写入波形文件的代码。