Pygame无法播放一些mp3文件,但没有播放其他
问题描述:
我正在使用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。
答
Pygame从未有过良好的MP3支持。根据文档: “请注意,MP3支持有限,在某些系统上,不支持的格式可能会导致程序崩溃,例如Debian Linux,请考虑使用OGG。”
http://www.pygame.org/docs/ref/music.html
FWIW,我从来没有与OGG文件的一个问题,这是很容易使用的ffmpeg或在线转换器转换。
答
这可能是一个与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
不幸的是,这不是这个应用程序的实际解决方案。 – user7823241
但是用这种方法解决问题不是吗?这将是一个解决方案,尽管不是最佳解决方案? https://stackoverflow.com/questions/5464912/simple-way-to-transcode-mp3-to-ogg-in-python-live – srattigan