【问题标题】:Windows (XP to Windows 7) audio playback with python?Windows(XP到Windows 7)用python播放音频?
【发布时间】:2012-03-31 23:00:00
【问题描述】:

任何人都有使用任何库使用 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 媒体播放器。所以我猜这是 wxWidgets 库中的一些错误

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

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

【问题讨论】:

    标签: python wxpython media


    【解决方案1】:

    我在几个项目中使用过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.\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()
    

    【讨论】:

    • 好吧,我测试它并不是我真正想要的,所以感谢您的帮助和一切。享受赏金:)
    猜你喜欢
    • 2011-04-30
    • 2011-12-11
    • 2013-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多