java Swing 播放背景音乐

  1. import java.io.FileNotFoundException;  
  2. import java.io.IOException;  
  3. import java.net.URL;  
  4. import sun.audio.AudioData;  
  5. import sun.audio.AudioPlayer;  
  6. import sun.audio.AudioStream;  
  7. import sun.audio.ContinuousAudioDataStream;  
  8.   
  9. public class MusicPlay {  
  10.     private AudioStream as; // 单次播放声音用  
  11.     ContinuousAudioDataStream cas;// 循环播放声音  
  12.   
  13.     // 构造函数  
  14.     public MusicPlay(URL url) {  
  15.         try {  
  16.             // 打开一个声音文件流作为输入  
  17.             as = new AudioStream(url.openStream());  
  18.         } catch(FileNotFoundException e) {  
  19.             // TODO Auto-generated catch block  
  20.             e.printStackTrace();  
  21.         } catch(IOException e) {  
  22.             // TODO Auto-generated catch block  
  23.             e.printStackTrace();  
  24.         }  
  25.     }  
  26.   
  27.     // 一次播放 开始  
  28.     public void start() {  
  29.         if(as == null) {  
  30.             System.out.println("AudioStream object is not created!");  
  31.             return;  
  32.         } else {  
  33.             AudioPlayer.player.start(as);  
  34.         }  
  35.     }  
  36.   
  37.     // 一次播放 停止  
  38.     public void stop() {  
  39.         if(as == null) {  
  40.             System.out.println("AudioStream object is not created!");  
  41.             return;  
  42.         } else {  
  43.             AudioPlayer.player.stop(as);  
  44.         }  
  45.     }  
  46.   
  47.     // 循环播放 开始  
  48.     public void continuousStart() {  
  49.         // Create AudioData source.  
  50.         AudioData data = null;  
  51.         try {  
  52.             data = as.getData();  //getData()函数不支持 mid的音频文件
  53.         } catch(IOException e) {  
  54.             // TODO Auto-generated catch block  
  55.             e.printStackTrace();  
  56.         }  
  57.   
  58.         // Create ContinuousAudioDataStream.  
  59.         cas = new ContinuousAudioDataStream(data);  
  60.   
  61.         // Play audio.  
  62.         AudioPlayer.player.start(cas);  
  63.     }  
  64.   
  65.     // 循环播放 停止  
  66.     public void continuousStop() {  
  67.         if(cas != null) {  
  68.             AudioPlayer.player.stop(cas);  
  69.         }  
  70.     }  
  71.   
  72. }  

使用:

Java代码   收藏代码
  1. MusicPlay myMusicPlay = new MusicPlay(MusicPlay.class.getResource("/music/dog.wav"));  
  2. myMusicPlay.start();//播放一次  
  3. myMusicPlay.stop();//停止  
  4. myMusicPlay.continuousStart();//循环播放  
  5. myMusicPlay.continuousStop();//停止  

 注意这里只是示例,stop与start不能连用,另这程序试验过,无法播放mp3音频文件、无法播放mid音频文件

你可能感兴趣的:(java,swing)