【问题标题】:Python MP3 PlayerPython MP3 播放器
【发布时间】:2016-09-24 15:21:59
【问题描述】:

我正在尝试在 Python 上播放 MP3 文件,但找不到合适的模块! 我试过这个:

import os
os.startfile('hello.mp3')

但我得到了错误

Traceback (most recent call last):
  File "/Applications/Youtube/text 2 speech/test.py", line 2, in <module>
    os.startfile('hello.mp3')
AttributeError: 'module' object has no attribute 'startfile'

我也试过这个:

import vlc
p = vlc.MediaPlayer("file:hello.mp3")
p.play()

但我得到了错误

Traceback (most recent call last):
  File "/Applications/Youtube/text 2 speech/test.py", line 1, in <module>
    import vlc
ImportError: No module named 'vlc'

但我仍然找不到合适的模块。有人可以帮忙吗?

【问题讨论】:

  • 当您尝试其中任何一种方法时发生了什么?
  • 还有错误信息吗?播放器是否启动但听不到音乐?你的操作系统是什么?尽量具体一点,否则我们真的帮不上忙!另请参阅How To Ask
  • 我的操作系统是 Os X Capitan 10.11.6
  • 这个任务我最喜欢的是pyglet

标签: python mp3 playback


【解决方案1】:

您需要从https://wiki.videolan.org/Python_bindings 安装vlc.py 模块

这绝对是这样的:

import vlc
Inst = vlc.Instance()
player = Inst.media_player_new()
Media = Inst.media_new_path('/home/rolf/vp1.mp3')
player.set_media(Media)
player.play()

虽然您需要检查 player.get_state() 以查看它是否仍在运行、暂停、停止等,并检查 player.stop() 以在启动后停止音频

据我所知,os.startfile() 仅适用于windows 操作系统。
使用play 命令行指令(Linux 和可能的 OS X)

import os
os.system('play /home/rolf/vp1.mp3')

您也可以查看 Gstreamer,尽管文档可能会有所改进。

import gst
player = gst.element_factory_make("playbin")
player.set_property("uri", "file:///home/james/vp1.mp3")
player.set_state(gst.STATE_PLAYING)

使用player.set_state(gst.STATE_NULL) 停止播放,
暂停player.set_state(gst.STATE_PAUSED)

注意:避免使用 Gstreamer 0.10 版的教程,而是搜索 1.0 版
vlcGstreamer 都允许您播放音频和视频,尽管在我看来,vlc 更易于使用,但Gstreamer 更灵活。

【讨论】:

  • os.system 真的非常非常老式,建议贬低。
  • @JacobVlijm 确实,但它击败了os.startfile('hello.mp3') 毫无疑问! ;)
  • 为了直接使用,在所有平台上都有更好的选择。
  • @JacobVlijm 我只是在回答 OP 的具体问题。如果您有意见,请说明,但向 OP 而非我说明。我已经知道替代品的范围。
  • 我已经下载了 vlc.py 并放入了 Py 文件的字典中。
【解决方案2】:

导入 pygame 从 pygame 导入混音器

def play_music(): 全局暂停

if (paused):
    mixer.music.unpause()
    paused = False
else:
    music = choose_music[0]
    mixer.music.load(music)
    mixer.music.play()
    show_details(music)
    musicpage.mainloop()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-29
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 2010-12-20
    相关资源
    最近更新 更多