From: marciowb on
Hi,

Java at Linux has some troubles playing sound when other applications
are accessing the sound system, too. So, after search for a solution
(no solution found), I create a Sound Utility class to workaround the
problems. It detect when the Java sound is broken and try a
alternative way by playing from out Java process.
See more at:
http://www.marciowb.net/blog/2008/07/java-sound-at-my-linux-machine-its

Regards,
Marcio Wesley Borges
http://www.marciowb.net/blog/

On May 25, 11:52 am, pek <kimwl...(a)gmail.com> wrote:
> On May 25, 1:35 pm, Andrew Thompson <andrewtho...(a)gmail.com> wrote:
>
>
>
> > On May 25, 7:09 pm, pek <kimwl...(a)gmail.com> wrote:
>
> > > On May 25, 7:10 am, Andrew Thompson <andrewtho...(a)gmail.com> wrote:> On May 25, 12:50 pm, pek <kimwl...(a)gmail.com> wrote:
> > > > ...
> > > > ...If you can convert it
> > > > to one of the formats supported by J2SE, it becomes
> > > > simpler.
>
> > > Of course not. ;) I just found it like this. I could easily convert it
> > > in wav.
>
> > Then try something along these lines (it
> > is even easier for an applet)..
>
> > <sscce>
> > import javax.sound.sampled.Clip;
> > import javax.sound.sampled.AudioSystem;
> > import javax.sound.sampled.LineUnavailableException;
> > import javax.sound.sampled.AudioInputStream;
>
> > import java.net.*;
> > import javax.swing.*;
>
> > class PlayClip {
> >   public static void main(String[] args) throws Exception {
> >     URL soundLocation = new URL(
> >       "file:C:/the.wav");
> >     // can use one clip many times
> >     Clip clip = AudioSystem.getClip();
>
> >     AudioInputStream inputStream =
> >       AudioSystem.getAudioInputStream(soundLocation);
> >     clip.open( inputStream );
> >     clip.loop(50);
> >     clip.start();
>
> >     // kludge to prevent the main() from exiting.
> >     JFrame f = new JFrame();
> >     f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
>
> >     f.getContentPane().add( new
> >       JLabel(soundLocation.toURI().toString()) );
> >     f.pack();
>
> >     f.setVisible(true);
> >   }}
>
> > </sscce>
>
> > --
> > Andrew T.
> > PhySci.org
>
> That is exactly the code I was looking for.. ;)
>
> Just in case you know even more, I am using openSuSE 10.3.. I did
> convert the files in wav and they play just fine. But when I run this
> code (I create a thread so multiple sounds can play simultaneous) I
> get this error:
>
> I'm not expecting you to answer. Just in case you know better (I hate
> the sound system in linux).