Sto usando audioRecord invece di mediarecorder nella mia app funziona bene ma ho una logica che dipende molto dalla maxamplitude che è davvero difficile da ottenere usando l'audiorecord qui è quello che sto usando durante la lettura del bufferImplementare getMaxAmplitude per 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();
}
}
}
, ma questo non funziona per me come il valore cambia in fretta che ho bisogno di implementare qualcosa di simile getMaxAmplitude() per audioRecord.