少なくとも 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();
}