<p>I tried playing a .wav file using pyaudio. It works great on windows, but doesn't work in Ubuntu when another device is using sound.</p>

<blockquote>
  <p>The error is "IOError: [Errorno
  Invalid output device (no default
  output device)] -9996</p>
</blockquote>

<p>Is there another library I could try to use? Another method?</p>

Have you looked at pymedia? It looks as easy as this to play a WAV file:
```
```
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
Of course, you can have a look at the Python wiki under Audio (
http://wiki.python.org/moin/Audio/
) for other libraries such as
https://docs.python.org/library/wave.html
or again in Python's wiki under Game Libraries (
http://wiki.python.org/moin/PythonGameLibraries
) that will point you to bindings to OpenAL or Pygame that has sound modules.
And finally, although I don't know the limitations of pyaudio, your error message sounds more like the library is not able to find the default output device more than the device is in use by another process. Maybe have a look at what output device is returned by the
```
get_default_output_device_info
```
of pyaudio and compare it to whatever's your default setting in Ubuntu.