como grabar sonido desde el microfono y guardarlo
tengo bastante tiempo investigando como grabar mi voz desde un microfono, lo cual ocupo para mi proyecto de
la universidad, e revisado muchas paginas i no veo nada claro, por favor si me pueden ayudar, y esque tengo que hacer un traductor
en el cual si no se encuentra la palabra, el usuario debe escribir la palabra y grabar como se pronuncia y todo eso guardarlo ,
por favor si me ayudan, selo agradeseria
este es mi codigo me guarda el sonido pero con el mismo nombre i el aterior se borra ps se sobre escribe,
import java.io.File;
import javax.sound.sampled.*;
public class NewClass {
String[]palabras=new String [100];
AudioFileFormat.Type aFF_T = AudioFileFormat.Type.WAVE;
AudioFormat aF = new AudioFormat(8000.0F, 16, 1, true, false);
TargetDataLine tD;
File f = new File("Grabacion.wav");
public NewClass() {
try {
DataLine.Info dLI = new DataLine.Info(TargetDataLine.class,aF);
tD = (TargetDataLine)AudioSystem.getLine(dLI);
new CapThread().start();
System.out.println("Grabando durante 10s...");
Thread.sleep(10000);
tD.close();
}catch (Exception e) {}
}
class CapThread extends Thread {
public void run() {
try {
tD.open(aF);
tD.start();
AudioSystem.write(new AudioInputStream(tD), aFF_T, f);
}catch (Exception e){}
}
}
me gustaria que me dejara poner el nombre y que lo pudiera abrir
public static void main(String[] args) {
new NewClass(); }
}
- Inicie sesión o regístrese para enviar comentarios
Guardar archivo con otro nombre
Mira yo realmente no he checado tu código, confío en lo que tu me pones (que ya te guarda el archivo, aunque con el mismo nombre)...
Para guardar el archivo con otro nombre y hasta en otro lugar:
En al línea: File f = new File("Grabacion.wav"); tu le dices a tu programa que el archivo se creará en la misma ruta y obvio siempre con el mismo nombre.
Para obtener una ruta distinta utiliza un JFileChooser:
El String ruta es la cadena que usarás en sustitución de "Grabacion.wav" . Ojo si el archivo existe se sobreescribirá de cualquier forma, por eso debes de verificar si existe antes de escribirlo, si existe deberás preguntar al usuario si desea sobreescribirlo.
Para verificar si existe:
Si el usuario no desea sobreescribirlo tendrás que volver a mostrar el JFileChooser ...
Ahora en consola
Pues resulta que por andar a las carreras no tome en cuenta que más bien se trata de una aplicación en modo consola (por el System.out.println) ... no hay una única forma, aquí una opción:
Para abrir un archivo con el programa adecuado en Linux me funciona:
Process miProceso = Runtime.getRuntime().exec("nombrePrograma rutaArchivo");
agregar sufijo
Puedes hacer una rutina para obtener un archivo en el mismo directorio pero que le vaya poniendo un sufijo distinto al nombre, para que cada grabación tenga un número de secuencia...
Aunque si tienes 100 archivos del Sonido_1.mp3 al Sonido_99.mp3 (y aparte Sonido.mp3) y borras el Sonido_20.mp3, en tu siguiente ejecución se va a crear el archivo Sonido_20.mp3. Otra opción es que le pegues fecha y hora para que siempre puedas buscar el último, es un proceso similar...
LISTO
OK MUCHAS GRASIAS YA QUEDO SI ME AYUDASTE MUCHO CON LO QUE ME CONTESTASTE, AL FIN QUEDO MI PROGRAMA PARA EXPONERLO , OOH LO DE SYSTEM NO ES QUE LO ESTE ASIENDO EN COSOLA , NOMAS LO PUSE PARA
GUIARME , ES UNA FORMA DE NO REVOLVERME PARA MI, YO ME ENTIENDO I ME AYUDA GRACIAS , PERO GRACIAS OTRA VES