2008-11-09 10 views

Respuesta

4

¿Has mirado pymedia? Parece tan fácil como esto para reproducir un archivo WAV:

import time, wave, pymedia.audio.sound as sound 
f= wave.open('YOUR FILE NAME', 'rb') 
sampleRate= f.getframerate() 
channels= f.getnchannels() 
format= sound.AFMT_S16_LE 
snd= sound.Output(sampleRate, channels, format) 
s= f.readframes(300000) 
snd.play(s) 
while snd.isPlaying(): time.sleep(0.05) 

Ref: http://pymedia.org/tut/play_wav.html

Por supuesto, se puede echar un vistazo a la wiki del pitón bajo audio (http://wiki.python.org/moin/Audio/) para otras bibliotecas como https://docs.python.org/library/wave.html o de nuevo en la wiki de Python en Game Libraries (http://wiki.python.org/moin/PythonGameLibraries) que lo señalará con enlaces a OpenAL o Pygame que tiene módulos de sonido.

Y finalmente, aunque no conozco las limitaciones de pyaudio, su mensaje de error suena más como que la biblioteca no puede encontrar el dispositivo de salida predeterminado más de lo que el dispositivo está siendo utilizado por otro proceso. Tal vez eche un vistazo a qué dispositivo de salida devuelve el get_default_output_device_info de pyaudio y compárelo con cualquiera que sea su configuración predeterminada en Ubuntu.

12

Puede utilizar wxPython

sound = wx.Sound('sound.wav') 
sound.Play(wx.SOUND_SYNC) 

o

sound.Play(wx.SOUND_ASYNC) 

Here es un ejemplo de la demostración wxPython.

2

Usted puede intentar Simpleaudio:

> pip install simpleaudio 

continuación:

import simpleaudio as sa 

wave_obj = sa.WaveObject.from_wave_file("path/to/file.wav") 
play_obj = wave_obj.play() 
play_obj.wait_done() 
0

Encontré playsound para ser el más simple.

from playsound import playsound 

is_synchronus = False 
playsound(r"C:\Windows\Media\chimes.wav", is_synchronus) 
Cuestiones relacionadas