如何在不打开任何媒体播放器的情况下播放声音文件?

时间:2016-12-30 16:57:10

标签: python windows python-2.7 audio

我正在编写一个简单的脚本,我希望通过计算机上的声音文件通知我。

虽然我可以通过以下方式播放声音文件:

import webbrowser
webbrowser.open("C:\Users\User\Desktop\Test\Test.mp3")

这将打开VLC或我拥有的任何媒体播放器,这可以替代我/干扰我正在做的任何事情。

有没有办法播放声音文件而不会弹出任何东西?我正在寻找的一个完美的例子是使用诸如使用winsound发出哔声之类的东西:

import winsound
Freq = 600 # Set Frequency To 600 Hertz
Dur = 800 # Set Duration To 800 ms == 0.8 second(s)
winsound.Beep(Freq,Dur)

无需打开任何新窗口即可发出快速哔声。

2 个答案:

答案 0 :(得分:1)

这就是诀窍。 首先,安装pyglet:

pip install pyglet 

现在下载并安装AVbin from here 请检查AVbin的安装位置,因为现在您必须转到安装目录并将avbin.dll复制到保存代码的目录。

最后,运行以下代码:

import pyglet
pyglet.lib.load_library('avbin')
pyglet.have_avbin=True
song = pyglet.media.load('filename.mp3')#your file name
song.play()
pyglet.app.run()

确保您的音乐文件与代码.py文件位于同一目录中。 根据我的经验做到这一点并且有效。

答案 1 :(得分:0)

@eryksun在评论中解决了以下问题:

winsound.PlaySound(wav_path, winsound.SND_FILENAME | winsound.SND_ASYNC)

对于我所寻找的内容,这是最好的解决方案。它使用默认库,只占用一条直线,并完成我需要的工作。