在Python中播放和控制mp3文件?

5 投票
2 回答
4113 浏览
提问于 2025-04-15 11:13

首先,我是一个Python初学者,之前主要用C++和Java做面向对象的编程。

我决定尝试Python来做我现在的项目,到目前为止我觉得还不错。不过,我遇到的一个问题是找不到合适的mp3模块。

我试过TkSnack,这个模块安装和运行都没有问题(只要我的音频设备没有忙),但它就是没法发出声音,完全没有反应……我上网查了资料,结果发现文档少得可怜,让我很失望。

于是我决定换一个。我试了PyMad,因为它在Ubuntu的标准库里也有。这个模块的文档更少,但我能让它播放声音。唯一的问题是,它需要一个循环来不断写入和播放音频缓冲区。我觉得这样处理播放控制特别麻烦,因为我得在一个单独的线程或进程中运行这个循环,还得控制暂停时的进度。这对我来说有点太底层了,我更喜欢TkSnack那种简单的命令,比如“mysound.play()”或“mysound.pause()”,而不是去控制一个循环。

我还看了pyMedia,感觉这个模块的文档更新得比较好,但我在我的电脑上安装不了。运行“python setup.py build”命令时总是出现“gcc exited with value 1”之类的错误。

所以我在寻找任何建议或者帮助,关于这些模块,或者其他完全不同的模块,最好是高层次、易于使用的mp3模块(最好也支持其他格式)。我想要基本的播放控制(暂停、停止、跳过、查找),而且将来可能还会涉及到文件流播放(如果我能做到的话)。

编辑:我喜欢Gstreamer的Python绑定,但这是一个跨平台的解决方案吗?我忘了提这个要求。不过我一直觉得GStreamer只适用于Linux,这在其他操作系统上能用吗?

编辑:维基百科说可以

2 个回答

1

我刚刚遇到这个问题,根据我的研究,我觉得你最好的选择是 pygletpygame。这两个都是界面包,里面自带音视频支持。

3

抱歉,我无法帮你解决关于PyMad或pyMedia的问题,但我可以给你一些其他的建议。

这里有一些用Python写的现有音乐播放器:

以上这些播放器都使用了Python绑定,这是GStreamer这个多媒体框架的一部分。关于这些绑定的文档不多,但你可以看看这里这里这里,还有源代码中的示例这里

撰写回答