2010-12-01 66 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)爲我工作。