Intereting Posts
Создайте закрытую исходную библиотеку Android на базе Gradle Виджет с поставщиком контента; Невозможно использовать ReadPermission? Как ссылаться или «находить» функцию предпочтения? Android Studio на mac: cant find Системный компилятор Как сделать запрос с учетом регистра с помощью ContentResolver в Android? Получение ресурса для рисования Android-меню слайдов с обеих сторон влево и вправо Не найден ресурс, который соответствует указанному имени '@android: style / Theme.Material.Light.DialogWhenLarge.NoActionBar' Gradle – Неожиданное исключение высшего уровня – Из ниоткуда Android: AsyncTask делает запрос HTTP GET? Android записывать на диск ненадежный – файл file.length! = Expected.length PopupWindow.getContentView (). GetLayoutParams () возвращает другой класс в Android Marshmallow Динамическое изменение высоты строки в списке в зависимости от количества элементов списка. Eclipse не показывает окно Avd manager и проект Android Android: java.lang.NullPointerException: попытка вызвать виртуальный метод «java.lang.String java.lang.Object.toString ()» в ссылке на нулевой объект

Изменение записи аудиосигнала 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, ..., ..., ..., ...); 

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