import java.applet.Applet;
import java.applet.AudioClip;public class MyAudioPlayer{
static AudioClip shot=Applet.newAudioClip(MyAudioPlayer.class.getClassLoader().getResource("sounds/Sleep.wav"));
boolean flag = false;
public static void main(String[]args){
new MyAudioPlayer();
}
MyAudioPlayer(){
shot.play();
shot.loop();
shot.stop();
}
/*class MyThread extends Thread{
}*/
}
import java.io.*;
public class MyAudioPlayer{
private AudioFormat format;
private byte[] samples;
public static void main(String args[])throws Exception{
MyAudioPlayer sound =new MyAudioPlayer("D:\\Javawork\\Study\\bin\\csdn\\sounds\\Sleep.wav");
InputStream stream =new ByteArrayInputStream(sound.getSamples());
// play the sound
sound.play(stream);
// exit
System.exit(0);
}
public MyAudioPlayer(String filename) {
try {
// open the audio input stream
AudioInputStream stream =AudioSystem.getAudioInputStream(new File(filename));
format = stream.getFormat();
// get the audio samples
samples = getSamples(stream);
}
catch (UnsupportedAudioFileException ex) {
ex.printStackTrace();
}
catch (IOException ex) {
ex.printStackTrace();
}
}
public byte[] getSamples() {
return samples;
}
private byte[] getSamples(AudioInputStream audioStream) {
// get the number of bytes to read
int length = (int)(audioStream.getFrameLength() * format.getFrameSize());
// read the entire stream
byte[] samples = new byte[length];
DataInputStream is = new DataInputStream(audioStream);
try {
is.readFully(samples);
}
catch (IOException ex) {
ex.printStackTrace();
}
// return the samples
return samples;
}
public void play(InputStream source) {
// use a short, 100ms (1/10th sec) buffer for real-time
// change to the sound stream
int bufferSize = format.getFrameSize() *
Math.round(format.getSampleRate() / 10);
byte[] buffer = new byte[bufferSize];
// create a line to play to
SourceDataLine line;
try {
DataLine.Info info =
new DataLine.Info(SourceDataLine.class, format);
line = (SourceDataLine)AudioSystem.getLine(info);
line.open(format, bufferSize);
}
catch (LineUnavailableException ex) {
ex.printStackTrace();
return;
}
// start the line
line.start();
// copy data to the line
try {
int numBytesRead = 0;
while (numBytesRead != -1) {
numBytesRead =
source.read(buffer, 0, buffer.length);
if (numBytesRead != -1) {
line.write(buffer, 0, numBytesRead);
}
}
}
catch (IOException ex) {
ex.printStackTrace();
}
// wait until all data is played, then close the line
line.drain();
line.close();
}}
我又改了下,却抛出了异常,大神帮我瞧瞧
import java.io.*;public class Sound
{
public static void main(String args[])
{
try {
FileInputStream fileau=newFileInputStream("D:\\Javawork\\Study\\bin\\csdn\\sounds\\Sleep.wav");
AudioStream as=new AudioStream(fileau);
AudioPlayer.player.start(as);
}
catch (Exception e) {}
}
}