Запись стерео с AudioRecord в андроид

Я ищу точный ответ о том, как заставить AudioRecord использовать микрофоны как верхнего, так и нижнего монтажа, чтобы у меня не было 2 одинаковых (моно) каналов. Я хотел бы знать, какой опрос я мог бы сделать заранее, чтобы гаджет обеспечил хороший поток.

Я работаю над Galaxy Nexus 5, и не могу заставить его работать, поэтому я не могу добиться стабильности на всех устройствах.

Я перепробовал все MediaRecorder.AudioSource,

AudioRecord audioInputStream1 = new AudioRecord(Media.Recorder.CAMCORDER,
    sampleRate, AudioFormat.CHANNEL_IN_STEREO, AudioFormat.ENCODING_PCM_16BIT,
    samplesPerBuffer * bytesPerSample)

а также создание двух записей:

AudioRecord audioInputStream1 = new AudioRecord(Media.Recorder.MIC,
    sampleRate, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT,
    samplesPerBuffer * bytesPerSample)

AudioRecord audioInputStream2 = new AudioRecord(Media.Recorder.CAMCORDER,
    sampleRate, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT,
    samplesPerBuffer * bytesPerSample)

Если кто-нибудь получит стереозапись на Nexus 5, я очень признателен за помощь. Должен ли я перейти на Alsa или TinyAlsa?

спасибо

1 ответ

Ваш вопрос тесно связан с моим вопросом, и кажется, что ответ зависит от устройства:

1) Для некоторых устройств (например, Samsung S2 Plus GT-I9105P, HTC One M7, HTC One M8, G3 LG-D855, Nexus 5,...) просто невозможно активировать реальные стереозаписи через встроенный микрофон капсулы. Несмотря на то, что в некоторых случаях приложение видеокамеры производителя воспроизводит настоящее стерео, вы не найдете другого приложения, способного это сделать.

2) Для некоторых других устройств, только несколько конкретных комбинаций MediaRecorder.AudioSource и, например, частота дискретизации (или другие базовые настройки) обеспечивают реальную стереозапись (например, требуется Motorola Moto G). MediaRecorder.AudioSource.CAMCORDER и частота дискретизации 48 кГц).

3) На большинстве устройств с двумя микрофонными капсулами AudioFormat.CHANNEL_IN_STEREO достаточно, чтобы активировать настоящую стереозапись.

К сожалению, Alsa или tinyAlsa, скорее всего, не решат проблему без рутирования устройства.

Другие вопросы по тегам