Изменение записи аудиосигнала Android по умолчанию

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

Тем не менее, мое приложение требует, чтобы я записывал из динамика на передней панели телефона, и поэтому я надеялся, что кто-то поможет мне в том, как программно изменить источник входного сигнала AudioRecord. Я много раз искал ответ на этот вопрос.

Некоторые вещи, которые я рассмотрел, следующие:

  • Используя класс AudioManager и включив громкоговоритель, например:
  •   AudioManager am = (AudioManager) getSystemService (Context.AUDIO_SERVICE);
     am.setSpeakerphoneOn (истина); 
  • Изменение параметра AudioSource при построении моего объекта AudioRecord:
  •   AudioRecord ar = новый AudioRecord (AudioSource. ????, ..., ..., ..., ...); 

    Я обнаружил, что API не слишком специфичны в отношении форматов AudioSource, поэтому мне было интересно, если кто-то еще борется с этой проблемой и может указать мне в правильном направлении.

    Заранее спасибо,

    Android в настоящее время не поддерживает запись звонков, поэтому я считаю, что вы не можете изменить ее для записи с динамика. Вы не должны действительно нуждаться, однако, микрофон в нижней части телефона должен иметь возможность записывать вещи на полную мощность, в которой вы нуждаетесь. Чтобы установить AudioRecord на микрофон, просто выполните:

    AudioRecord ar = new AudioRecord(AudioSource.MIC, ..., ..., ..., ...); 

    Это даст вам лучшее качество записи.