windows java audio capture in and out? (mic + speaker) -


i'm testing code question:

capturing audio streams in java

is possible perform input , output recording in same file? i'm getting microphone.

i save audio input , output devices. example, user using headphones , speakers.

here's example of i'm using:

void start() {      audioformat format = new audioformat(44100, 16, 2, true, true);      dataline.info targetinfo = new dataline.info(targetdataline.class, format);      mixer.info[] minfolist = audiosystem.getmixerinfo();      dataline.info info = null;      vector<audioformat> taudioformatlist = getsupportedformats(targetdataline.class);      javafilelogger.logit(0, "for in mixers info");      (final mixer.info mi : minfolist) {         javafilelogger.logit(0, "mierinfo: " + mi.tostring());          mixer m = audiosystem.getmixer(mi);          javafilelogger.logit(0, "mierinfo: " + m.tostring());          try {              javafilelogger.logit(0, " try open mixer ");              m.open();             javafilelogger.logit(0, "for audioformat");              (audioformat f : taudioformatlist) {                 javafilelogger.logit(0, " format " + f.tostring());                  info = new dataline.info(targetdataline.class, f);                  if (audiosystem.islinesupported(info) && audiosystem.getmixer(mi).islinesupported(info)) {                      javafilelogger.logit(0, " suported ");                      final targetdataline tline = (targetdataline) audiosystem.getline(info);                      javafilelogger.logit(0, " line ");                      tline.open(f);                     tline.start();                      javafilelogger.logit(0, " cast ");                      final audioinputstream ais = new audioinputstream(tline);                      javafilelogger.logit(0, " passou cast ");                      final thread writer = new thread(new runnable() {                         public void run() {                              try {                                 thread.sleep(1000);                             } catch (exception e) {                             }                              final thread stopper = new thread(new runnable() {                                 public void run() {                                      javafilelogger.logit(0, " iniciou thread " + this.hashcode());                                      try {                                         thread.sleep(10000);                                     } catch (interruptedexception ex) {                                         ex.printstacktrace();                                     }                                      javafilelogger.logit(0, " escrevendo " + this.hashcode());                                      javafilelogger.logit(0, " jofando no arquivo " + this.hashcode());                                      try {                                         thread.sleep(record_time);                                     } catch (interruptedexception ex) {                                         ex.printstacktrace();                                     }                                      javafilelogger.logit(0, " terminou o sleep " + this.hashcode());                                      tline.stop();                                     tline.close();                                      javafilelogger.logit(0, "fechou line " + this.hashcode());                                      try {                                         ais.close();                                     } catch (ioexception ex) {                                         // logger.getlogger(audiocapture.class.getname()).log(level.severe, null, ex);                                     }                                      javafilelogger.logit(0, "fechou o arq  e fnalizou thread " + this.hashcode());                                  }                             });                              stopper.start();                              try {                                 audiosystem.write(ais, filetype, new file("c:/s4/recordaudio_"+stopper.hashcode()+".wav"));                             } catch (ioexception ex) {                                 javafilelogger.logit(0, "erro ao gravar " + this.hashcode());                             }                         }                     });                          writer.start();                  }             }          } catch (exception e) {             javafilelogger.logit(0, "falha na identificação mixer " + e.getmessage());         }     } 


Comments

Popular posts from this blog

neo4j - finding mutual friends in a cypher statement starting with three or more persons -

php - How to remove letter in front of the word laravel -

minify - Minimizing css files -