Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.*;
- import javax.sound.sampled.*;
- public class AudioMix{
- public static void main(String args[]) throws Exception{
- AudioFormat audioFormat;
- TargetDataLine targetDataLine;
- AudioInputStream audioInputStream;
- SourceDataLine sourceDataLine;
- Mixer.Info[] mixerInfo = AudioSystem.getMixerInfo();
- System.out.println("Available mixers:");
- for(int cnt = 0; cnt < mixerInfo.length;cnt++){
- System.out.println(mixerInfo[cnt].getName());
- }
- audioFormat = getAudioFormat();
- DataLine.Info dataLineInfo1 =new DataLine.Info(
- TargetDataLine.class,audioFormat);
- DataLine.Info dataLineInfo2 =new DataLine.Info(
- SourceDataLine.class,audioFormat);
- Mixer mixer = AudioSystem.getMixer(mixerInfo[3]);
- targetDataLine = (TargetDataLine)mixer.getLine(dataLineInfo1);
- sourceDataLine = (SourceDataLine)mixer.getLine(dataLineInfo2);
- targetDataLine.open(audioFormat);
- sourceDataLine.open(audioFormat);
- targetDataLine.start();
- sourceDataLine.start();
- audioInputStream = AudioSystem.getAudioInputStream
- (new File("test.wav"));
- int nBytesRead = 0;
- byte[] abData = new byte[1024*2];
- while (nBytesRead != -1)
- {
- nBytesRead = audioInputStream.read(abData, 0, abData.length);
- System.out.println(nBytesRead);
- if (nBytesRead >= 0)
- {
- sourceDataLine.write(abData, 0, nBytesRead);
- }
- }
- System.out.println("here");
- AudioInputStream ais2=new AudioInputStream(targetDataLine);
- System.out.println("here1");
- AudioSystem.write(ais2,AudioFileFormat.Type.WAVE,new File("test_temp.wav"));
- System.out.println("here2");
- }
- public static AudioFormat getAudioFormat(){
- try{
- File soundFile = new File("test.wav");
- AudioInputStream audioInputStream = null;
- audioInputStream = AudioSystem.getAudioInputStream
- (soundFile);
- AudioFormat format = audioInputStream.getFormat();
- return format;
- }catch(Exception e){return null;}
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement