1

我需要以至少 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();
        }
4

1 回答 1

1

设置OutputFormat为:

mRecorder.setOutputFormat(MediaRecorder.OutputFormat.AAC_ADTS);

那就试试吧。它会起作用的。

于 2015-06-17T13:47:24.720 回答