AudioRecord类管理Java应用程序的音频资源,以录制音频数据。 这一篇文章主要记录下AudioRecord使用方法,通过AudioRecord录制音频数据,并封装成WAV格式数据。
使⽤AudioRecord的录音流程,分为以下⼏步
- 获取 创建AudioRecord 所需的buffer size 大小;
- 创建AudioRecord
- 调⽤AudioRecord.startRecording开始录音。
- 读取录制的音频数据AudioRecord.read(data, 0, bufferSize)。
- 停止录音,并释放;
1 getMinBufferSize
获取创建AudioRecord对象所需的最小缓冲区大小,以字节为单位。这一步非常重要,必须先获取size,才能之后创建AudioRecord。
this.sampleRate = sampleRate;
this.channelCount = channelCount;
int channelConfig = channelCount == 1 ? AudioFormat.CHANNEL_IN_MONO :
AudioFormat.CHANNEL_IN_STEREO;
minBufferSize = AudioRecord.getMinBufferSize(sampleRate, channelConfig,
AudioFormat.ENCODING_PCM_16BIT);
2 初始化AudioRecord
初始化AudioRecord有以下两种方式。
- 直接new初始化;
- 通过Builder模式创建对象。
这两种方式都可以。
// 1
mRecord = new AudioRecord(MediaRecorder.AudioSource.MIC, sampleRate, channelConfig,
AudioFormat.ENCODING_PCM_16BIT, minBufferSize);
// 2
mRecord = new AudioRecord.Builder()
.setAudioSource(MediaRecorder.AudioSource.MIC)
.setAudioFormat(new AudioFormat