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;public classMp3Player {public static voidmain(String[] args) {try{
File file= new File("E:\\mp.mp3");
AudioInputStream in=AudioSystem.getAudioInputStream(file);
AudioInputStream din= null;
AudioFormat baseFormat=in.getFormat();
AudioFormat decodedFormat= newAudioFormat(
AudioFormat.Encoding.PCM_SIGNED,
baseFormat.getSampleRate(),16, baseFormat.getChannels(),
baseFormat.getChannels()* 2, baseFormat.getSampleRate(),false);
din=AudioSystem.getAudioInputStream(decodedFormat, in);//Play now.
rawplay(decodedFormat, din);
in.close();
}catch(Exception e) {//Handle exception.
}
}private static voidrawplay(AudioFormat targetFormat, AudioInputStream din)throwsIOException, LineUnavailableException {byte[] data = new byte[4096];
SourceDataLine line=getLine(targetFormat);if (line != null) {//Start
line.start();int nBytesRead = 0, nBytesWritten = 0;while (nBytesRead != -1) {
nBytesRead= din.read(data, 0, data.length);if (nBytesRead != -1)
nBytesWritten= line.write(data, 0, nBytesRead);
}//Stop
line.drain();
line.stop();
line.close();
din.close();
}
}private staticSourceDataLine getLine(AudioFormat audioFormat)throwsLineUnavailableException {
SourceDataLine res= null;
DataLine.Info info= new DataLine.Info(SourceDataLine.class,
audioFormat);
res=(SourceDataLine) AudioSystem.getLine(info);
res.open(audioFormat);returnres;
}
}