Windows (XP към Windows 7) аудио възпроизвеждане с python?

Някой има ли опит с възпроизвеждане на аудио (в момента, по-специално mp3) с python, използвайки any libs?

подробности:

Използването е в приложение 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 libs, предполагам

опитах с 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, надявайки се, че работи)


person Zimm3r    schedule 31.03.2012    source източник


Отговори (1)


Използвал съм PortAudio в няколко проекта, което е безплатно отворено между различни платформи -source-audio библиотека, но никога с python. Не се притеснявайте, има обвързвания за това:

PyAudio предоставя обвързвания на Python за PortAudio.

""" 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()
person karlphillip    schedule 05.04.2012
comment
Е, тествах го и не беше това, което търсех, така че благодаря за помощта и всичко. Насладете се на наградата :) - person Zimm3r; 21.04.2012