我正在使用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>
>>>
答案 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。