programacion - Java Sound API-captura de micrófono
manual de programacion android pdf (1)
Esto te dará el predeterminado establecido por tu sistema operativo.
AudioFormat format = new AudioFormat(8000.0f, 16, 1, true, true);
TargetDataLine microphone = AudioSystem.getTargetDataLine(format);
Para seleccionar un dispositivo de entrada particular (TargetDataLine), es mejor enumerar los mezcladores y filtrar el nombre del Mezclador que desee.
Mixer.Info[] mixerInfos = AudioSystem.getMixerInfo();
for (Mixer.Info info: mixerInfos){
Mixer m = AudioSystem.getMixer(info);
Line.Info[] lineInfos = m.getSourceLineInfo();
for (Line.Info lineInfo:lineInfos){
System.out.println (info.getName()+"---"+lineInfo);
Line line = m.getLine(lineInfo);
System.out.println("/t-----"+line);
}
lineInfos = m.getTargetLineInfo();
for (Line.Info lineInfo:lineInfos){
System.out.println (m+"---"+lineInfo);
Line line = m.getLine(lineInfo);
System.out.println("/t-----"+line);
}
}
He estado leyendo en Sound API for Java durante un par de días y no puedo encontrarle sentido. Soy un programador decente, tengo dificultades para entender la API.
He intentado capturar audio de mi micrófono y mostrar un gráfico de onda en tiempo real.
Tengo problemas para capturar audio, dicen en el tutorial para hacer esto, pero parece que no puedo hacerlo funcionar.
Cualquier sugerencia y ayuda sería muy apreciada, una respuesta línea por línea sería ideal.
Por favor y gracias.
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.TargetDataLine;
public class FindLine {
public static void main (String[] args){
AudioFormat format = new AudioFormat(22000,16,2,true,true);
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 ...
}
}
}