Я пытаюсь сделать стереозапись со своего телефона галактики Nexus. По своим характеристикам, телефон имеет 2 встроенных микрофона. Исправьте меня, если я ошибаюсь, 2 микрофона будут использоваться, если на устройстве поддерживается стереозаписьAndroid стерео запись. Точные данные из двух разных каналов
У меня нет ошибок при инициализации и использовании класса AudioRecord для записи стерео аудио. Но результаты, которые я получаю от двух аудиоканалов, точно такие же. Кто-нибудь сталкивался с той же проблемой раньше? Есть идеи? Спасибо. Следующий фрагмент кода, что я использую для настройки записи стерео:
int bufferRead = 0;
int bufferSize = AudioRecord.getMinBufferSize(44100,
AudioFormat.CHANNEL_IN_STEREO, AudioFormat.ENCODING_PCM_16BIT);
// if doesn't support that sampling frequency
if (bufferSize == AudioRecord.ERROR_BAD_VALUE
|| bufferSize == AudioRecord.ERROR) {
Log.i(this.toString(), "doesn't support sampling rate of "
+ frequency);
throw new IllegalArgumentException(
"entered unsupported audio sampling rate");
}
// grabbing 16-bit pcm audio
short[] tempBuffer = new short[bufferSize];
AudioRecord recordInstance = new AudioRecord(MediaRecorder.AudioSource.MIC,
44100, AudioFormat.CHANNEL_IN_STEREO, AudioFormat.ENCODING_PCM_16BIT,
bufferSize);
recordInstance.startRecording();
Вы передаете 'AudioFormat.CHANNEL_IN_MONO' в конструктор' AudioRecord'. – Michael
Извините, это опечатка, когда я пишу вопрос. Уже изменил его. Я уверен, что получаю стереоданные, так как я могу их разделить на два канала. – James
На каждом телефоне с двумя микрофонами, с которыми я работал последние пару лет, достаточно запросить 2 канала (т. Е. 'CHANNEL_IN_STEREO'). Единственное исключение, о котором я могу думать, это XPeria P, который дал вам двойное моно, если вы использовали источник звука CAMCORDER, из-за механики камеры, мешающей второму микрофону. Я никогда не работал с платформой OMAP, поэтому я не знаю, как они вообще что-то делают. – Michael