pyaudioで.wavファイルを再生してみました。Windowsではうまく機能しますが、別のデバイスがサウンドを使用している場合、Ubuntuでは機能しません。
エラーは「IOError: [Errorno Invalid output device (no default output device)] -9996」です。
使用できる別のライブラリはありますか? 別の方法?
pyaudioで.wavファイルを再生してみました。Windowsではうまく機能しますが、別のデバイスがサウンドを使用している場合、Ubuntuでは機能しません。
エラーは「IOError: [Errorno Invalid output device (no default output device)] -9996」です。
使用できる別のライブラリはありますか? 別の方法?
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_info
pyaudioによって返される出力デバイスを見て、Ubuntu のデフォルト設定と比較してみてください。
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()
それがあなたの要件を満たすかどうかは絶対にわかりませんが、すぐに 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()
私playsound
は最も単純であることがわかりました。
from playsound import playsound
is_synchronus = False
playsound(r"C:\Windows\Media\chimes.wav", is_synchronus)