The first way: without a panel:
/** * */ PackageCom.niit.hitmouse;ImportJava.io.File;Importjava.io.IOException;ImportJavax.sound.sampled.AudioInputStream;ImportJavax.sound.sampled.AudioSystem;ImportJavax.sound.sampled.Clip;Importjavax.sound.sampled.UnsupportedAudioFileException;/** * @author: Annie * @date: June 3, 2016 * @description:*/ Public classPlaymusic { PublicPlaymusic (String URL)throwsexception{//add music to the interfaceFile File =NewFile (URL);//url is the path to your music audioinputstream Auin=audiosystem.getaudioinputstream (file); Clip Clip=(Clip) audiosystem.getclip (); Clip.open (Auin); Clip.start (); while(clip.available () > 0) {Thread.Sleep (1000); } clip.close (); } }
The second way: With a panel, controllable
PackageCom.niit.innerclass;ImportJava.applet.Applet;ImportJava.applet.AudioClip;Importjava.awt.FlowLayout;Importjava.awt.event.ActionEvent;ImportJava.awt.event.ActionListener;Importjava.awt.event.ItemEvent;ImportJava.awt.event.ItemListener;ImportJava.io.File;Importjava.net.MalformedURLException;ImportJava.net.URI;ImportJava.net.URL;ImportJavax.swing.JButton;ImportJavax.swing.JComboBox;ImportJavax.swing.JDialog;ImportJavax.swing.JFrame;ImportJavax.swing.JMenuItem;/** * @author: Annie * @date: June 3, 2016 * @description: Music player*/ Public classMusicdemoextendsJDialogImplementsactionlistener,itemlistener,runnable{JButton Btn_play,btn_stop,btn_loop; JComboBox Musiccombox; AudioClip clip; Thread thead; String str; PublicMusicdemo () {setSize (350, 200); SetLayout (NewFlowLayout ()); Musiccombox=NewJComboBox (); Musiccombox.additem ("Select Audio File"); Musiccombox.additem ("./src/wedding in Dream. wav"); Musiccombox.additem ("./src/combat gopher. wav"); Btn_play=NewJButton ("Play"); Btn_stop=NewJButton ("Stop"); Btn_loop=NewJButton ("Loop"); Thead=NewThread ( This); Add (Musiccombox); Add (Btn_play); Add (Btn_stop); Add (Btn_loop); Musiccombox.additemlistener ( This); Btn_play.addactionlistener ( This); Btn_stop.addactionlistener ( This); Btn_loop.addactionlistener ( This); Setdefaultcloseoperation (Jframe.dispose_on_close); SetVisible (true); } Public Static voidMain (string[] args) {NewMusicdemo (); } Public voidrun () {System.out.println ("The Run method came in."); Try{File File=NewFile (str);//Create a File objectUri uri = File.touri ();//Create a URI objectURL url = uri.tourl ();//Create a URL objectClip = Applet.newaudioclip (URL);//Create an Audio object}Catch(malformedurlexception e) {e.printstacktrace (); }} @Override Public voiditemstatechanged (itemevent e) {System.out.println ("The Itemstatechanged method came in."); STR=Musiccombox.getselecteditem (). toString (); System.out.println ("----------Str:" +str); if(!(Thead.isalive ())) {thead=NewThread ( This); } Try{Thead.start (); }Catch(Exception ee) {}} @Override Public voidactionperformed (ActionEvent e) {System.out.println ("The Actionperformed method came in."); if(E.getsource () = =Btn_play) {Clip.play (); }Else if(E.getsource () = =btn_stop) {clip.stop (); }Else if(E.getsource () = =Btn_loop) {Clip.loop (); } }}
:
The Third Way:
PackageCom.niit.innerclass;/** * @author: Annie * @date: June 3, 2016 * @description:*/ImportJava.io.File;Importjava.io.IOException;ImportJavax.sound.sampled.AudioFormat;ImportJavax.sound.sampled.AudioInputStream;ImportJavax.sound.sampled.AudioSystem;ImportJavax.sound.sampled.DataLine;Importjavax.sound.sampled.LineUnavailableException;ImportJavax.sound.sampled.SourceDataLine;Importjavax.sound.sampled.UnsupportedAudioFileException; Public classplay{PrivateString file_path= "./src/wedding in Dream. wav"; PrivateAudioinputstream ais; PrivateSourcedataline Line; PrivateAudioformat Baseformat; Private Static Final intBuffer_size=4000*4; Privatesourcedataline getLine (Audioformat audioformat) {sourcedataline res=NULL; Dataline.info Info=NewDataline.info (Sourcedataline.class, Audioformat); Try{res=(sourcedataline) audiosystem.getline (info); Res.open (Audioformat); }Catch(Exception e) {e.printstacktrace (); } returnRes; } Private voidPlay ()throwsunsupportedaudiofileexception, lineunavailableexception, ioexception{ais= Audiosystem.getaudioinputstream (NewFile (File_path)); Baseformat=Ais.getformat (); Line=GetLine (Baseformat); Line.start (); intInbytes = 0; byte[] Audiodata=New byte[Buffer_size]; while(Inbytes! =-1) {inbytes= Ais.read (audiodata, 0, buffer_size); if(inbytes >= 0) { intOutbytes = Line.write (audiodata, 0, inbytes); } } } Public Static voidMain (String args[])throwsunsupportedaudiofileexception, Lineunavailableexception, IOException {Play P1=NewPlay (); P1.play (); }}
Three ways to play audio: