<Sound Dev> sound on Linux
Paulo Levi
i30817 at gmail.com
Tue Oct 13 15:45:37 PDT 2009
I was just looking at this problem a while ago... opening the java
sound audio engine instead of the default one might be a solution.
Actually right now i'm using the method bellow, however, there are
still some errors on a test machine that exhibited errors before (but
no exception anymore) - the errors come in a Fedora (Pulse-Audio)
linux. Obviously if it can't open the mixer it will try to open the
java sound audio engine one - that should take take of one of the
errors java not playing, but still might cause the second - native
applications not playing.
Actually the guy that is running the tests for me in that machine
reports that audio is inaudible still, but no exception is raised if i
use this.
/**
* Lines can fail to open because they are already in use.
* Java sound uses OSS and some linuxes are using pulseaudio.
* OSS needs exclusive access to the line, and pulse audio
* highjacks it. Try to open another line.
* @param format
* @return a open line
* @throws IllegalStateException if it can't open a dataline for the
* audioformat.
*/
private SourceDataLine getSourceDataLine(AudioFormat format) {
Exception audioException = null;
try {
DataLine.Info info = new
DataLine.Info(SourceDataLine.class, format);
for (Mixer.Info mi : AudioSystem.getMixerInfo()) {
SourceDataLine dataline = null;
try {
Mixer mixer = AudioSystem.getMixer(mi);
dataline = (SourceDataLine) mixer.getLine(info);
dataline.open(format);
dataline.start();
return dataline;
} catch (Exception e) {
audioException = e;
}
if (dataline != null) {
try {
dataline.close();
} catch (Exception e) {
}
}
}
} catch (Exception e) {
throw new IllegalStateException("Error trying to aquire
dataline.", e);
}
if (audioException == null) {
throw new IllegalStateException("Couldn't aquire a
dataline, this computer doesn't seem to have audio output?");
} else {
throw new IllegalStateException("Couldn't aquire a
dataline, probably because all are in use. Last exception:",
audioException);
}
}
More information about the sound-dev
mailing list