在Python 3,Windows 7中播放mp3的指定子部分

时间:2012-02-28 02:29:50

标签: windows-7 python-3.x mp3

我有一个长度为3秒的MP3文件。我想玩一个指定的小节,比如从第二个1.4到第二个3.2。我在Python 3中工作,而不是Python 2,在Windows上,而不是Linux。

我意识到Python 3没有一个模块可以解决我的问题,但我想也许我可以让像mpg123这样的MP3播放器作为后端运行,让我的Python程序控制它。但mpg123的远程命令太有限了。还有其他想法吗?是否有一个我可以在命令行使用的Windows程序,如下所示:

program -start 1.4 -end 2.3 file.mp3

并从子进程调用?

1 个答案:

答案 0 :(得分:1)

如果您安装了 mplayer 二进制文件,或者您可以将mplayer打包,那么您可以使用mplayer.py。它也适用于Windows和Linux上的Python 2和3。初始化播放器后,您可以使用time_pos属性(浮点数)进行搜索,并且需要暂停和停止方法。像这样:

player = mplayer.Player()
player.loadfile("musicfile.mp3")
player.time_pos = start
while player.time_pos < stop : pass
player.stop()

缺点是没有UI和热键支持,因为mplayer正在运行后台并且通过套接字进行通信。如果你不需要任何其他东西,你可能最好只使用mplayer本身的-ss 开始时间和-endpos 长度(以秒为单位)参数,如下所示:

mplayer "music.mp3" -ss 20 -endpos 2

这将从00:20到00:22。你不能指定毫秒,但如果你真的只想播放从A点到B点的一个或多个音乐文件,那么这个(使用批处理或豪华版)是一个更好的解决方案,因为它的依赖性较小。