1
我正在創建一個女巫項目,我必須找到錄製聲音的響度。調用getMaxAmplitude返回0
無論我打電話多少次getMaxAmplitude()
它總是顯示0,並通過編寫amplitudeDb
它總是顯示-infinity。
好心幫我謝謝。
這是我的代碼。
record1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
record[0] = new MediaRecorder();
record[0].setAudioSource(MediaRecorder.AudioSource.MIC);
record[0].getMaxAmplitude();
record[0].setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
record[0].setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
record[0].setOutputFile(FilePath);
try {
record[0].prepare();
record[0].getMaxAmplitude();
} catch(IOException e) {
e.printStackTrace();
}
try {
record[0].start();
}
catch(Exception e) {
e.printStackTrace();
}
}
});
stop.setOnClickListener(new View.OnClickListener() {@Override
public void onClick(View v) {
try {
record[0].stop();
}
catch(Exception e) {
e.printStackTrace();
}
try {
int amp = record[0].getMaxAmplitude();
//String ampl = amp.toString();
int x = 1;
System.out.println("amp: " + amp);
System.out.println("hello");
//double amplitudeDb = 20 * Math.log10((double) Math.abs(amp));
ampli.setText("" + amp);
}
catch(Exception e) {
e.printStackTrace();
}
try {
record[0].release();
}
catch(Exception e) {
e.printStackTrace();
}
}
});