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{

}*/
}

解决方案 »

  1.   

    import javax.sound.sampled.*;
    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();
        }}
    我又改了下,却抛出了异常,大神帮我瞧瞧
      

  2.   

    import sun.audio.*;
    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) {}
    }
    }