|
Prev: Two stuck threads in synchronized method - at least it seemslike from a stack trace
Next: Problem with Access concatenation
From: marciowb on 23 Jul 2008 00:10 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). |