PyGame声音缩短了

时间:2010-12-01 22:24:26

标签: python audio pygame

我正在使用Ubuntu 10.4并按照教程'Pummel the chimp并赢得$$$'学习PyGame。

我制作了两个'.wav'文件,但是当我尝试播放它们时,我会发出一种奇怪的声音,就像砰的一声,非常短暂。

我没有收到任何错误消息。为什么这不能按预期工作?

>>> import pygame
>>> pygame.init()
(6, 0)
>>> def load_sound(name):
    class NoneSound(object):
        def play(self): pass
    if not pygame.mixer:
        return NoneSound()
    fullname = os.path.join('data', name)
    try:
        sound = pygame.mixer.Sound(fullname)
    except pygame.error, message:
        print 'Cannot load sound:', name
        raise SystemExit, message
    return sound

>>> whiff_sound = load_sound('whiff.wav')
>>> whiff_sound.play()
<Channel object at 0xb772f1c0>
>>> 

Here is the wav i'm using.(链接断开)

3 个答案:

答案 0 :(得分:3)

我的第一个想法是,这听起来像采样频率的问题。每当启动混音器时,其默认值为:

  

pygame.mixer.init(频率= 22050,   size = -16,channels = 2,buffer = 4096):   返回无

如果频率= 22050(采样频率)与声音的采样频率不同,则可能会导致问题(主要是加快或减慢声音的播放速度)。

但是,pygame.mixer.Sound的文档是:

  

将执行有限的重新采样   帮助样本匹配   初始化混音器的参数。

这表明这种问题应该自行解决......

但是我敢打赌这是一个采样频率问题,可以通过将混音器对象的(采样)频率更改为声音文件的采样频率来修复,或者自己重新采样声音文件以匹配值搅拌机。

希望这有帮助!

答案 1 :(得分:2)

我遇到了同样的声音问题,我在一个名为WavePad Sound Editor的程序中打开声音并将文件重新保存为.wav并将采样率设置为22050 Hz,这解决了我的问题。

答案 2 :(得分:2)

虽然调整频率没有任何好运,但在调用mixer.init()时,设置size = 8和buffer = 2048。