Estoy usando audioRecord en lugar de mediarecorder en mi aplicación funciona bien, pero tengo una lógica que depende mucho de la gran amplitud que es realmente difícil de obtener usando el audiorecord aquí es lo que estoy usando al leer el bufferImplementa getMaxAmplitude para audioRecord
private void writeAudioDataToFile(){
byte data[] = new byte[bufferSize];
String filename = getTempFilename();
FileOutputStream os = null;
try {
os = new FileOutputStream(filename);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int read = 0;
max=0;
if(null != os){
while(isRecording){
read = recorder.read(buffer, 0, bufferSize);
int ab = (buffer[0] & 0xff) << 8 | buffer[1];
amplitude = Math.abs(ab);
if(amplitude>0&&litude<25000)
isSilence=true;
else
isSilence=false;
//System.out.println(">>>>>>>>>>>"+amplitude);
if(AudioRecord.ERROR_INVALID_OPERATION != read){
try {
os.write(buffer);
} catch (IOException e) {
e.printStackTrace();
}
}
}
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
pero esto no funciona para mí como el valor cambia muy rápido que necesito para poner en práctica algo así como getMaxAmplitude() para audioRecord.