2014-01-17 63 views
0

我正在尝试为我正在制作的游戏使用歌曲,但是我所得到的只是一个超高音,将我的耳膜分开。在Pygame中使用声音

这里是我的代码:

pygame.mixer.init() 
pygame.init() 
song=pygame.mixer.music.load('sacrifice.mp3') 
song.play(-1) 

我转换到MP3播放一个.wav,但现在我得到的错误“无法加载wav文件”。

pygame.init() 
pygame.mixer.init() 
pygame.mixer.music.load('sacrifice.wav') 
pygame.mixer.music.play(1) 
+0

为什么你在.play的参数(-1)? –

+0

@Brant Unger(-1)会导致歌曲无限循环。 –

+0

我不认为这是问题,但尝试将其更改为1而不是-1。默认为0. –

回答

0
song.play(-1, 0.0) 

可能会奏效。这对我有效...... 如果你正在尝试一个.wav,我建议尝试一个.wav声音效果,以确保它不仅仅是愚蠢的pygame。

soundObj = pygame.mixer.Sound('beeps.wav') 
soundObj.play() 
time.sleep(1) # wait and let the sound play for 1 second 
soundObj.stop() 

在线下载任何.wav文件(不要把你的转换的mp3,因为有时系统仍然检测到它作为一个MP3)。如果它仍然不起作用,我建议您测试扬声器是否正常工作。

0

song.play()返回一个通道对象。这个对象是播放声音所必需的。 因此,也许这可能是这里的解决方案:

channel = song.play() 

和你问题的第二部分:

pygame.mixer不能处理所有类型的声音。 引用ocenaudio我需要一个“Wav PCM Linear”.wav声音文件。

但随着pygame.mixer.music我从来没有这些限制...