Una forma sencilla y rápida de aprender JAVA, observando y deduciendo cómo se comporta el lenguaje a través de ejemplos prácticos.

miércoles, 3 de marzo de 2010

Grabación de sonido desde el microfono.

Codigo:
  1. import java.io.File;
  2. import javax.sound.sampled.*;
  3. .public class Main {
  4. ..AudioFileFormat.Type aFF_T = AudioFileFormat.Type.WAVE;
  5. ..AudioFormat aF = new AudioFormat(8000.0F, 16, 1, true, false);
  6. ..TargetDataLine tD;
  7. ..File f = new File("Grabacion.wav");
  8. ..public Main() {
  9. ...try {
  10. ....DataLine.Info dLI = new DataLine.Info(TargetDataLine.class,aF);
  11. ....tD = (TargetDataLine)AudioSystem.getLine(dLI);
  12. ....new CapThread().start();
  13. ....System.out.println("Grabando durante 10s...");
  14. ....Thread.sleep(10000);
  15. ....tD.close();
  16. ...}catch (Exception e) {}
  17. ..}
  18. ..class CapThread extends Thread {
  19. ..public void run() {
  20. ...try {
  21. ....tD.open(aF);
  22. ....tD.start();
  23. ....AudioSystem.write(new AudioInputStream(tD), aFF_T, f);
  24. ...}catch (Exception e){}
  25. ..}
  26. .}
  27. .public static void main(String[] args) { new Main(); }
  28. }

Resultado:

  • Grabando durante 10s...

13 comentarios:

  1. Excelente muchas gracias !!

    ResponderEliminar
  2. Maravilloso, lo tome prestado para un proyecto, muchisimas gracias!!! =D

    ResponderEliminar
  3. Excelente codigo muchas gracias..!!!

    ResponderEliminar
  4. muchas gracias, pero como lo reproduzco? si necesito enviarlo por un socket como envio los bits del targetDataLine?

    ResponderEliminar
  5. Estubo bien! pero le hicieron falta ovnis!!!...

    ResponderEliminar
  6. Muchas Gracias, muy util

    ResponderEliminar
  7. como puedo modificarlo para hacerlo web
    es decir en jsp?

    ResponderEliminar
  8. saludos quisiera saber por que a mi no me funciona
    ava.lang.IllegalArgumentException: No line matching interface TargetDataLine supporting format PCM_SIGNED 8000.0 Hz, 16 bit, mono, 2 bytes/frame, little-endian is supported.
    at javax.sound.sampled.AudioSystem.getLine(AudioSystem.java:476)
    at audio.Main.(Main.java:28)
    at audio.Main.main(Main.java:52)

    ResponderEliminar
  9. Excelente, pero sabes como escoger el micrófono de nuestra preferencia?

    ResponderEliminar
  10. Yo quiero guardar un audio mucho ya me rebusque y no encuentro. Como guardo un MP3 de una carpeta a otra carpeta.

    ResponderEliminar

Con la tecnología de Blogger.