我需要以至少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();
}
答案 0 :(得分:1)
将OutputFormat
设置为:
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.AAC_ADTS);
然后试试。它会起作用。