AudioRecord class in standard Android API for recording raw Audio.
Mediarecorder is the Android class used for recording Audio and Video available since API Level 1
This class leverages audiorecord which is a lower level approach to using mediarecorder
MediaRecorder Silence at Beginning of Recording (Delay?)
Audiorecord does take longer to understand and implement though if you want to stick with a mediarecorder object then i recommend using aac_adts as the audio encoder and allowing the outputformat to be three_gpp
How to record good quality audio using MediaRecoder in android?