2014-01-17 81 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我從來沒有這些限制...