Pygame无法播放一些mp3文件而不播放其他文件

时间:2017-08-27 20:54:26

标签: python pygame mp3

我正在开发一个使用Python 3.5.2运行mp3文件的应用程序,它运行在IDLE和pygame 1.9.3。问题是某些mp3文件正常播放而其他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')

标记为'good'的文件正常播放,而标记为'bad'的文件则没有播放。两个文件都在同一个目录中;两个文件都与音乐播放器一起播放;这两个文件在Windows 7机器上使用python 3.4和pygame。

2 个答案:

答案 0 :(得分:0)

Pygame从未有过良好的MP3支持。根据文档: "请注意MP3支持有限。在某些系统上,不受支持的格式会导致程序崩溃,例如Debian Linux。请考虑使用OGG。"

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

FWIW,我从未遇到过OGG文件的问题,而且使用ffmpeg或在线转换器进行转换非常容易。

答案 1 :(得分: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