How to get the amplitude when blowing into MIC in android device.
MediaRecorder recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSou
You need to set up permissions on your manifest file
<uses-permission android:name="android.permission.RECORD_AUDIO" />
You have to initialize the recorder, as well as set several methods. Look at the documentation for MediaRecorder to see how to do this. I've used this method and it works quite well.
public boolean isBlowing()
{
boolean recorder=true;
int minSize = AudioRecord.getMinBufferSize(8000,AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT);
AudioRecord ar = new AudioRecord(MediaRecorder.AudioSource.MIC, 8000,AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT,minSize);
short[] buffer = new short[minSize];
ar.startRecording();
while(recorder)
{
ar.read(buffer, 0, minSize);
for (short s : buffer)
{
if (Math.abs(s) > 27000) //DETECT VOLUME (IF I BLOW IN THE MIC)
{
blow_value=Math.abs(s);
System.out.println("Blow Value="+blow_value);
ar.stop();
recorder=false;
return true;
}
}
}
return false;
}