我需要以至少 44.1 kHz 的采样率进行录制。我已经在我的较新设备(Android 4.1.2)上测试了以下代码,录制的音频将根据我的输入具有不同的采样率。但是,当我使用旧设备(Android 2.3.4)时,无论我选择什么采样率,它总是返回一个以 8 kHz 采样的文件。
输出格式和音频编码器都是 API 级别 10,低于我的旧设备的级别。我无法理解我的旧设备(Droid X)可能具有仅支持 8 kHz 音频采样率的硬件,所以我假设必须有另一种方法来强制执行我想要的采样率。
private void startRecording() {
mRecorder = new MediaRecorder();
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mRecorder.setOutputFile(mFileName);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
mRecorder.setAudioSamplingRate(44100);
try {
mRecorder.prepare();
} catch (IOException e) {
Log.e(LOG_TAG, "prepare() failed");
}
mRecorder.start();
}