gpt4 book ai didi

python - Windows(XP到Windows 7)用python播放音频?

转载 作者:太空狗 更新时间:2023-10-30 01:03:15 24 4
gpt4 key购买 nike

有人有使用任何库使用 python 播放音频(现在特别是 mp3)的经验吗?

详细信息:

在 wxPython 应用程序中使用(是的,我已经尝试过 wx.media.MediaCtrl)

好的,现在这是我尝试过的东西。

试过类似 http://www.daniweb.com/software-development/python/code/216465/play-mp3-files-via-pythons-win32com-support 的代码

不工作(没有任何音频)

尝试过 wxPython MediaCtrl:有时可以工作,但最近只能播放文件,url 播放几秒钟然后没有音频(但轨道继续播放,我知道文件也已完全下载,所以不是媒体未下载). 我能够通过重新启动来解决这个问题然后它工作了一点然后坏了,尝试再次重新启动但这次没有解决它,但是其他使用 windows media apis(C#.NET 应用程序)的播放器工作得很好等等Windows Media Player。所以我猜这是 wxWidgets 库中的一些错误

尝试使用 mplayer,示例:http://www.blog.pythonlibrary.org/2010/07/24/wxpython-creating-a-simple-media-player/主要问题 mplayer 不喜欢设置属性,所以我永远不能暂停,因为如果我这样做,我将无法将状态设置回播放(参见我在此处使用的代码 http://paste.pocoo.org/show/574269/ )

在 Linux 上,我使用了 gstreamer,在经历了一些令人头疼的问题后可以正常工作(尽管仍然存在问题),MacOS X 尚未经过测试,但我将尝试使用 quicktime 和 wx.media.MediaCtrl,希望它能正常工作)

最佳答案

我用过 PortAudio在几个项目中,这是一个 free-cross-platform-open-source-audio 库,但从来没有使用 python。别担心,它有绑定(bind):

PyAudio为 PortAudio 提供 Python 绑定(bind)。

""" Play a WAVE file. """

import pyaudio
import wave
import sys

chunk = 1024

if len(sys.argv) < 2:
print "Plays a wave file.\n\n" +\
"Usage: %s filename.wav" % sys.argv[0]
sys.exit(-1)

wf = wave.open(sys.argv[1], 'rb')

p = pyaudio.PyAudio()

# open stream
stream = p.open(format =
p.get_format_from_width(wf.getsampwidth()),
channels = wf.getnchannels(),
rate = wf.getframerate(),
output = True)

# read data
data = wf.readframes(chunk)

# play stream
while data != '':
stream.write(data)
data = wf.readframes(chunk)

stream.close()
p.terminate()

关于python - Windows(XP到Windows 7)用python播放音频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9960448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com