2008-11-09 17 views

Antwort

4

Haben Sie sich Pymedia angesehen? Es sieht so einfach wie diese eine WAV-Datei zu spielen:

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

Natürlich können Sie einen Blick auf die Python Wiki unter Audio haben (http://wiki.python.org/moin/Audio/) für andere Bibliotheken wie https://docs.python.org/library/wave.html oder erneut in Pythons Wiki unter Spielbibliotheken (http://wiki.python.org/moin/PythonGameLibraries), die Sie auf Bindungen zu OpenAL oder Pygame verweisen, die Soundmodule haben.

Und schließlich, obwohl ich die Einschränkungen von pyaudio nicht kenne, klingt Ihre Fehlermeldung mehr wie die Bibliothek ist nicht in der Lage, das Standard-Ausgabegerät mehr als das Gerät von einem anderen Prozess verwendet wird. Vielleicht sehen Sie sich an, welches Ausgabegerät von der get_default_output_device_info von Pyaudio zurückgegeben wird und vergleichen Sie es mit Ihren Standardeinstellungen in Ubuntu.

12

können Sie wxPython

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

oder

sound.Play(wx.SOUND_ASYNC) 

Here ist ein Beispiel aus der Demo wxPython verwenden.

2

Sie können Simpleaudio versuchen:

> pip install simpleaudio 

Dann:

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

Ich fand playsound am einfachsten zu sein.

from playsound import playsound 

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