2017-08-27 86 views
0

我正在使用pygame 1.9.3在IDLE中運行使用Python 3.5.2播放mp3文件的應用程序。問題在於一些mp3文件可以正確播放,而另一些則不能播放一點都不玩。用來評估問題Pygame無法播放一些mp3文件,但沒有播放其他

測試代碼:

import pygame 
from pygame import mixer 
from pygame.locals import * 
pygame.init() 
mixer.init() 
mixer.music.load('good.mp3') 
mixer.music.play() 
u = input('Good file') 
mixer.music.load('bad.mp3') 
mixer.music.play() 
u = input('Bad file') 

的文件標記爲「好」正常播放,而標有一個「壞」不。這兩個文件都在同一個目錄中;這兩個文件都與音樂播放器一起玩;並且這兩個文件都可以在Windows 7機器上使用python 3.4和pygame。

回答

0

Pygame從未有過良好的MP3支持。根據文檔: 「請注意,MP3支持有限,在某些系統上,不支持的格式可能會導致程序崩潰,例如Debian Linux,請考慮使用OGG。」

http://www.pygame.org/docs/ref/music.html

FWIW,我從來沒有與OGG文件的一個問題,這是很容易使用的ffmpeg或在線轉換器轉換。

+0

不幸的是,這不是這個應用程序的實際解決方案。 – user7823241

+0

但是用這種方法解決問題不是嗎?這將是一個解決方案,儘管不是最佳解決方案? https://stackoverflow.com/questions/5464912/simple-way-to-transcode-mp3-to-ogg-in-python-live – srattigan

0

這可能是一個與MP3的pygame支持問題。 你可以試試VLC module

>>> import vlc 
>>> p = vlc.MediaPlayer("bad.mp3") 
>>> p.play() 

如果不工作,你可以嘗試轉換的MP3 - > WAV - > MP3來修復這可能是有問題的Pygame任何編碼問題。正如chris建議的那樣,ffmpeg是最簡單的編碼方式。

$ ffmpeg -i bad.mp3 -acodec pcm_u8 bad.wav 
$ ffmpeg -i bad.wav -codec:a libmp3lame -qscale:a 2 bad2.mp3 
相關問題