在使用AudioRecord录制音频之前,我们需要将其初始化,并且还需要指定参数:采样率、声道数量、音频格式和缓冲区大小。这些参数都将影响音频录制的质量。其中,bufferSize参数决定了录制音频数据时每次读取的字节数,因此它的重要性不容忽视。
下面是一个设置bufferSize的示例:
int audioSource = MediaRecorder.AudioSource.MIC; int sampleRate = 44100; int channelConfig = AudioFormat.CHANNEL_IN_MONO; int audioFormat = AudioFormat.ENCODING_PCM_16BIT; int bufferSize = AudioRecord.getMinBufferSize(sampleRate, channelConfig, audioFormat);
AudioRecord recorder = new AudioRecord(audioSource, sampleRate, channelConfig, audioFormat, bufferSize);
在这个示例中,使用getMinBufferSize()方法获取最小缓冲区大小,并将其用作录制器的参数之一。
需要注意的是,bufferSize的值必须是音频录制器支持的值之一。如果尝试使用不支持的值,则会引发IllegalArgumentException异常。因此,在设置bufferSize时,请务必确保其值是已知的,并应与录制器支持的值相匹配。