Windows(XP到Windows 7)用python播放音频?
任何人都有使用任何libs使用
python播放音频(现在特别是mp3)的经验吗?
细节: 使用是在wxPython应用程序中(是的,我已经尝试过wx.media.MediaCtrl) 好了,现在我已经尝试过了. 试过像http://www.daniweb.com/software-development/python/code/216465/play-mp3-files-via-pythons-win32com-support这样的代码 不起作用(没有音频) 试过wxPython MediaCtrl:有时工作,但最近只有文件播放工作,网址播放几秒钟,然后没有音频(但跟踪继续,我知道文件也完全下载,所以它不是媒体没有下载). 尝试使用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,这是一个免费的跨平台开源音频库,但从未使用过python.别担心,它有绑定:
PyAudio为PortAudio提供Python绑定. """ Play a WAVE file. """ import pyaudio import wave import sys chunk = 1024 if len(sys.argv) < 2: print "Plays a wave file.nn" + "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() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows-phone-7 – windows 8上的windows phone开发
- Windows 8中的Apache Maven安装
- 如何在Windows上创建PHP扩展?
- Windows 10计算机上最新版本的Java崩溃致命错误
- 如何在Windows批处理文件中运行PowerShell脚本
- windows-8 – 注册后如何立即启动Windows应用程序后台任务?
- windows – Azure打印服务器 – 在Azure中运行所有内容?
- windows-phone-8 – 在调用MobileFirst适配器返回之前重新激
- 证书 – 在Windows 8中,第三方INF驱动程序文件是否需要签名
- windows – 如何仅为当前OS会话设置变量
- windows-8 – 为什么在自定义WinRT C/C++X控件中
- Windows下Oracle 11g的安装
- wpf – 在Windows上绘制叠加图形的最佳方法是什么
- windows – 可以将特定文件移动到磁盘的开头?
- wpf – 无法从程序集PresentationFramework加载类
- windows-server-2003 – 使用命令行远程检查计算
- windows-server-2003 – Windows 2003 ODBC问题
- windows-server-2008-r2 – 解决Windows EAP / R
- coffeescript – 用于window.location.search的s
- 无法在Windows 8上使用SetSystemTime设置时钟