I want to develop a small Android app to measure the current noise level (probablyin dB). But I have no idea what to look for in the libs. I don\'t want to record the noise. Can
I recommend looking in these classes:
android.media.AudioFormat
android.media.AudioManager
android.media.AudioTrack
We used them in the Blinkendroid audio package a short while ago.
The following code snippet shows how we obtained the noise level in the past. Unfortunately the documentation does not tell what unit #getMaxAmplitude() returns.
// Start recording but don't store data
MediaRecorder mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mediaRecorder.setOutputFile("/dev/null");
mediaRecorder.prepare();
mediaRecorder.start();
// Obtain maximum amplitude since last call of getMaxAmplitude()
while(someCondition) {
int amplitude = mediaRecorder.getMaxAmplitude();
}
// Don't forget to release
mediaRecorder.reset();
mediaRecorder.release();