Advertisement
Guest User

AudioMix.java

a guest
Jul 12th, 2010
429
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.07 KB | None | 0 0
  1.  
  2. import java.io.*;
  3. import javax.sound.sampled.*;
  4.  
  5.  
  6. public class AudioMix{
  7.  
  8.  
  9.  public static void main(String args[]) throws Exception{
  10.  
  11.    
  12.       AudioFormat audioFormat;
  13.       TargetDataLine targetDataLine;
  14.       AudioInputStream audioInputStream;
  15.       SourceDataLine sourceDataLine;
  16.  
  17.       Mixer.Info[] mixerInfo = AudioSystem.getMixerInfo();
  18.       System.out.println("Available mixers:");
  19.       for(int cnt = 0; cnt < mixerInfo.length;cnt++){
  20.         System.out.println(mixerInfo[cnt].getName());
  21.       }
  22.  
  23.  
  24.       audioFormat = getAudioFormat();
  25.       DataLine.Info dataLineInfo1 =new DataLine.Info(
  26.                             TargetDataLine.class,audioFormat);
  27.       DataLine.Info dataLineInfo2 =new DataLine.Info(
  28.                             SourceDataLine.class,audioFormat);
  29.  
  30.       Mixer mixer = AudioSystem.getMixer(mixerInfo[3]);
  31.       targetDataLine = (TargetDataLine)mixer.getLine(dataLineInfo1);
  32.       sourceDataLine = (SourceDataLine)mixer.getLine(dataLineInfo2);
  33.       targetDataLine.open(audioFormat);
  34.       sourceDataLine.open(audioFormat);
  35.     targetDataLine.start();
  36.     sourceDataLine.start();
  37.        
  38.  
  39.  
  40.  
  41.     audioInputStream = AudioSystem.getAudioInputStream
  42.                     (new File("test.wav"));
  43.     int nBytesRead = 0;
  44.     byte[] abData = new byte[1024*2];
  45.     while (nBytesRead != -1)
  46.     {
  47.         nBytesRead = audioInputStream.read(abData, 0, abData.length);
  48.         System.out.println(nBytesRead);
  49.         if (nBytesRead >= 0)
  50.         {
  51.             sourceDataLine.write(abData, 0, nBytesRead);
  52.         }
  53.     }
  54.  
  55.    
  56.         System.out.println("here");
  57.  
  58.  
  59.    
  60.     AudioInputStream ais2=new AudioInputStream(targetDataLine);
  61.         System.out.println("here1");
  62.     AudioSystem.write(ais2,AudioFileFormat.Type.WAVE,new File("test_temp.wav"));
  63.         System.out.println("here2");
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.     }
  72.  
  73.  
  74.     public static AudioFormat getAudioFormat(){
  75.         try{
  76.                 File soundFile = new File("test.wav");     
  77.             AudioInputStream audioInputStream = null;
  78.             audioInputStream = AudioSystem.getAudioInputStream
  79.                         (soundFile);
  80.             AudioFormat format = audioInputStream.getFormat();
  81.             return format;
  82.         }catch(Exception e){return null;}
  83.   }
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement