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?