1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
   |  
import java.io.*;
import javax.sound.sampled.*;
public class sound {
 
 private AudioFormat format;
 private byte[] samples;
 
 public sound(String filename){
      try{
          AudioInputStream stream = AudioSystem.getAudioInputStream(new File(filename));
      format = stream.getFormat();
 
      samples = getSamples(stream);
 
      }
      catch (UnsupportedAudioFileException e){
      e.printStackTrace();
    }
    catch (IOException e){
      e.printStackTrace();
      System.out.println("prob!");
      }
    }
 
    public byte[] getSamples(){
      return samples;
    }
 
    public byte[] getSamples(AudioInputStream stream){
      int length = (int)(stream.getFrameLength() * format.getFrameSize());
      byte[] samples = new byte[length];
      DataInputStream in = new DataInputStream(stream);
      try{
      in.readFully(samples);
      }
      catch (IOException e){
      e.printStackTrace();
      }
 
      return samples;
    }
 
    public void play(InputStream source){
 
      int bufferSize = format.getFrameSize() * Math.round(format.getSampleRate() / 10);
      byte[] buffer = new byte[bufferSize];
      SourceDataLine line;
      try{
      DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
      line = (SourceDataLine)AudioSystem.getLine(info);
      line.open(format, bufferSize);
      }
      catch (LineUnavailableException e){
      e.printStackTrace();
      return;
      }
      line.start();
      try{
      int numBytesRead = 0;
      while (numBytesRead != -1){
        numBytesRead = source.read(buffer, 0, buffer.length);
        if (numBytesRead != -1)
        line.write(buffer, 0, numBytesRead);
      }
      }
      catch (IOException e){
      e.printStackTrace();
                            System.out.println("prob2!");
      }
      line.drain();
      line.close();
    }
 
      public static void main(String[] args)
 
    {
      sound player = new sound("son.wav");
      InputStream stream = new ByteArrayInputStream(player.getSamples());
      player.play(stream);
      System.exit(0);
    }
 } | 
Partager