Мне нужно записывать с частотой дискретизации не менее 44,1 кГц. Я протестировал следующий код на своем более новом устройстве (Android 4.1.2), и записанный звук будет иметь разную частоту дискретизации в зависимости от моего ввода. Однако, когда я использую свое старое устройство (Android 2.3.4), независимо от того, какую частоту дискретизации я выбираю, он всегда возвращает файл с частотой дискретизации 8 кГц.
И выходной формат, и аудиокодер имеют уровень API 10, что ниже уровня моего старого устройства. Я не могу понять, что мое старое устройство (Droid X) может иметь аппаратное обеспечение, поддерживающее только частоту дискретизации звука 8 кГц, поэтому я предполагаю, что должен быть другой способ обеспечить желаемую частоту дискретизации.
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();
}