I already wrote the same code but it still does not work. It conflicts with flash player and with mplayer (in any mode).
2009/10/14 Paulo Levi <i30...@gmail.com> > 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); > } > } > -- ----------------------------------------------------------------- Всего наилучшего <y6erGn0m.