2011-01-28 19 views
11

Quiero grabar voz utilizando una aplicación Java; Supongo que esto será básicamente un applet que se ejecutará en el lado del cliente. Pero no tengo idea de cómo hacerlo ... ¿Alguna idea? Además, quiero reproducir la voz grabada.Grabar voz con Java

He oído hablar de Java Speech API. Alguna idea si puede ayudar?

+0

eche un vistazo a: http://ditra.cs.umu.se/jmf2_0-guide-html/JMFCapturing.html – pingw33n

+0

@ pingw33n - también es completo para comprender :( – Varun

Respuesta

7

llego tarde a la fiesta, pero aquí están los documentos oficiales sobre la captura de audio: http://docs.oracle.com/javase/tutorial/sound/capturing.html

(Y copiado directamente desde el enlace de arriba aquí algunos ejemplos de código para hacerlo :)

TargetDataLine line; 
DataLine.Info info = new DataLine.Info(TargetDataLine.class, 
       format); // format is an AudioFormat object 
if (!AudioSystem.isLineSupported(info)) { 
    // Handle the error ... 

} 
// Obtain and open the line. 
try { 
    line = (TargetDataLine) AudioSystem.getLine(info); 
    line.open(format); 
} catch (LineUnavailableException ex) { 
    // Handle the error ... 
} 

// Assume that the TargetDataLine, line, has already 
// been obtained and opened. 
ByteArrayOutputStream out = new ByteArrayOutputStream(); 
int numBytesRead; 
byte[] data = new byte[line.getBufferSize()/5]; 

// Begin audio capture. 
line.start(); 

// Here, stopped is a global boolean set by another thread. 
while (!stopped) { 
    // Read the next chunk of data from the TargetDataLine. 
    numBytesRead = line.read(data, 0, data.length); 
    // Save this chunk of data. 
    out.write(data, 0, numBytesRead); 
} 
+0

en su ejemplo Tengo un error en la línea detenida, ¿puede ayúdame – Abderrahim

+0

Escribí eso hace más de 4 años ... y lo copié de esa url, pero supongo que tienes errores de compilación. La variable 'opped' es esencialmente un marcador de posición para una variable que debes establecer/crear/mantener en otro lugar para saber si se supone que debes o no haber dejado de grabar. Entonces es muy particular para tu caso. – xbakesx

Cuestiones relacionadas