2010-12-01 68 views
3

我使用Ubuntu 10.4并学习PyGame,按照教程'敲打黑猩猩并赢得$$$'。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.(断链)

+0

您是否使用独立音频播放器播放.wav文件? – nmichaels 2010-12-01 22:25:31

+0

如果包含代码,则更有可能获得帮助。 – Velociraptors 2010-12-01 22:26:06

+0

@nathon是的,它的工作原理很好 – Ant 2010-12-01 22:28:08

回答

2

我有同样的问题用一个声音,我开了一个叫WavePad声音编辑程序我的声音,并重新将文件保存为一个.wav和设置采样率22050赫兹,这解决了我的问题。

3

我首先想到的是,这听起来像采样频率的问题。每当混合器被启动它的缺省值是:

pygame.mixer.init(频率= 22050, 大小= -16,信道= 2,缓冲液= 4096): 返回无

如果频率= 22050,即采样频率,与声音的采样频率不同,则可能导致问题(实质上是加速或放慢声音播放)。

然而,pygame.mixer.Sound文件上写着:

有限公司重采样将被执行 帮助的样品不一致的 初始化参数的混频器。

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

但我敢打赌,这是一个采样频率的问题,可以通过固定改变混频器对象(采样)频率声音文件的采样频率,或者自己重新采样声音文件以匹配调音台的值。

希望这会有所帮助!

2

虽然我没有与调整频率,设置大小= 8的任何运气和调用mixer.init(当缓冲= 2048)为我工作。