Java中音乐背景的播放

package music;
import java.io.*;

import javax.sound.sampled.*;

public class Music {
 public static void main(String[] args) {
//  创建一个AePlayWave对象实例
  AePlayWave wav=new AePlayWave("D:/111.wav");
//  启动该线程播放
  wav.start();
 }
}
//播放声音的类
class AePlayWave extends Thread {
 private String filename;
 public AePlayWave(String wavfile) {
  filename = wavfile;

 }
 public void run() {
  File soundFile = new File(filename);
  AudioInputStream audioInputStream = null;
  try {
   audioInputStream = AudioSystem.getAudioInputStream(soundFile);
  } catch (Exception e1) {
   e1.printStackTrace();
   return;
  }
  AudioFormat format = audioInputStream.getFormat();
  SourceDataLine auline = null;
  DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
  try {
   auline = (SourceDataLine) AudioSystem.getLine(info);
   auline.open(format);
  } catch (Exception e) {
   e.printStackTrace();
   return;
  }
  auline.start();
  int nBytesRead = 0;
  //这是缓冲
  byte[] abData = new byte[512];

  try {
   while (nBytesRead != -1) {
    nBytesRead = audioInputStream.read(abData, 0, abData.length);
    if (nBytesRead >= 0)
     auline.write(abData, 0, nBytesRead);
   }
  } catch (IOException e) {
   e.printStackTrace();
   return;
  } finally {
   auline.drain();
   auline.close();
  }
 }
}

 

posted @ 2011-11-05 22:50  残星  阅读(389)  评论(0编辑  收藏  举报