Java Sound format not supported

xorinzor picture xorinzor · Aug 11, 2012 · Viewed 12.3k times · Source

When using the following code: http://pastebin.com/5iVnttiP

I receive this error:

javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED 16000.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian not supported.
    at com.sun.media.sound.DirectAudioDevice$DirectDL.implOpen(Unknown Source)
    at com.sun.media.sound.AbstractDataLine.open(Unknown Source)
    at com.sun.media.sound.AbstractDataLine.open(Unknown Source)
    at com.AIComputer.model.Recorder.<init>(Recorder.java:124)
    at com.AIComputer.AIComputer.main(AIComputer.java:7)

Now I did some research and found out that not all sound cards support every format, however when running this demo: http://java.sun.com/products/java-media/sound/samples/JavaSoundDemo/ I managed to produce a recording using the exact same parameters (linear, 16000, 16, signed, little endian, stereo).

I have no idea what I'm doing wrong here (also since I'm still a beginner at Java coding).

Any help will be greatly appreciated!

Answer

mico picture mico · Aug 19, 2012

Can you say from which line on YOUR code this exception is thrown?

The docs of LineUnavailableException says

This situation arises most commonly when a requested line is already in use by another application.

You're opening two lines in your code. When you try to open the second one, the existence of the first one blocks it.