在Android中录制音频有两种方式,MediaRecorder和AudioRecorder。
MediaRecorder相对比较简单,不需要关心中间录制过程,录制成功后可以直接得到音频文件,用音频播放器就可以直接播放。录制的音频文件是经过压缩的,需要设置编码器。AudioRecorder在声音录制过程中,可以处理采集的声音数据,如降噪、合成等。过程为一段一段进行录制然后得到数据分别进行处理。录制的是PCM格式的音频文件,需要用AudioTrack来播放,AudioTrack更接近底层。
本文主要讲解的是MediaRecorder来录制。
通过new MediaRecorder()创建MediaRecorder实例调用 setAudioSource()设定音频的录入源调用setOutputFormat()设置输出格式调用setAudioEncoder()设定音频的编码方式。调用setOutputFile()设置输出文件路径调用prepare()准备录制调用start()开始录制调用stop()停止录制
MediaRecorder recorder = new MediaRecorder()
recorder
.setAudioSource(MediaRecorder
.AudioSource.MIC)
recorder
.setOutputFormat(MediaRecorder
.OutputFormat.THREE_GPP)
recorder
.setAudioEncoder(MediaRecorder
.AudioEncoder.AMR_NB)
recorder
.setOutputFile(PATH_NAME)
recorder
.prepare()
recorder
.start()
...
recorder
.stop()
recorder
.reset()
recorder
.release()
附一张Android官网的流程图: