20

pyaudioで.wavファイルを再生してみました。Windowsではうまく機能しますが、別のデバイスがサウンドを使用している場合、Ubuntuでは機能しません。

エラーは「IOError: [Errorno Invalid output device (no default output device)] -9996」です。

使用できる別のライブラリはありますか? 別の方法?

4

5 に答える 5

12

wxPythonを使用できます

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

また

sound.Play(wx.SOUND_ASYNC)

これは wxPython デモの例です

于 2008-11-10T07:21:59.830 に答える
4

pymediaを見たことがありますか?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)

参照: http://pymedia.org/tut/play_wav.html

もちろん、https://docs.python.org/library/wave.htmlなどの他のライブラリについては、 Audio ( http://wiki.python.org/moin/Audio/ ) の下にある Python wiki を参照してください。または、ゲーム ライブラリ ( http://wiki.python.org/moin/PythonGameLibraries )の下の Python の wiki で、サウンド モジュールを持つ OpenAL または Pygame へのバインディングを示します。

最後に、pyaudio の制限はわかりませんが、エラー メッセージは、デバイスが別のプロセスで使用されているというよりも、ライブラリがデフォルトの出力デバイスを見つけることができないように聞こえます。get_default_output_device_infopyaudioによって返される出力デバイスを見て、Ubuntu のデフォルト設定と比較してみてください。

于 2008-11-09T19:05:47.757 に答える
2

Simpleaudioを試すことができます:

> pip install simpleaudio

それで:

import simpleaudio as sa

wave_obj = sa.WaveObject.from_wave_file("path/to/file.wav")
play_obj = wave_obj.play()
play_obj.wait_done()
于 2016-03-29T12:16:08.457 に答える
1

それがあなたの要件を満たすかどうかは絶対にわかりませんが、すぐに PyGame だと思いました

http://www.pygame.org/docs/ref/mixer.html#pygame.mixer.Sound

from pygame import mixer

mixer.init()
s = mixer.Sound('sound.wav')
s.play()
于 2008-11-10T09:37:33.830 に答える
0

playsoundは最も単純であることがわかりました。

from playsound import playsound

is_synchronus = False
playsound(r"C:\Windows\Media\chimes.wav", is_synchronus)
于 2018-01-23T19:51:12.140 に答える