Как изменить микрофон для записи при подключении громкой связи в устройствах Samsung?

Я работаю с OpenSL_ES в Android, и некоторые проблемы с выбором источника микрофона на устройствах Samsung, когда я подключаю наушники с громкой связью.

Проблема в том, что независимо от того, какой источник микрофона я установил в OpenSL_ESконфигурация усиления изменяется, но микрофон всегда является микрофоном громкой связи. Другими словами, я не могу использовать встроенный микрофон устройства при подключении устройства громкой связи.

Я пытался:

Изменение источника микрофона на все доступные источники:

//ioInternals.micSource = SL_ANDROID_RECORDING_PRESET_NONE;       
//ioInternals.micSource = SL_ANDROID_RECORDING_PRESET_GENERIC;    
ioInternals.micSource = SL_ANDROID_RECORDING_PRESET_CAMCORDER;
//ioInternals.micSource = SL_ANDROID_RECORDING_PRESET_VOICE_RECOGNITION;
//ioInternals.micSource = SL_ANDROID_RECORDING_PRESET_VOICE_COMMUNICATION;
//ioInternals.micSource = SL_ANDROID_RECORDING_PRESET_UNPROCESSED;

res = (*recorderConfig)->SetConfiguration(recorderConfig, SL_ANDROID_KEY_RECORDING_PRESET,&ioInternals.micSource, sizeof(SLuint32));

Ничто из вышеперечисленного не позволяет мне изменить источник (только настройка усиления)

Некоторые, где я читал, что "взломать" может быть установлен на SL_ANDROID_RECORDING_PRESET_NONE в OpenSL_ES а затем используйте класс MediaRecorder в Java для подготовки рекордера при смене источников микрофона (например, 9), чтобы проверить, изменит ли один из них телефон источник звука на встроенный микрофон устройства и т. д. OpenSL_ES взял бы микрофон по умолчанию в данный момент. Это не имеет особого смысла, так как они работают в разных контекстах, но затрачивало время на тестирование, и MediaRecorder не изменяет источник микрофона, когда громкая связь не подключена.

Вариант, который я вижу, состоит в том, чтобы разработать мой микрофонный модуль в библиотеке Jack от Samsung, предполагая, что библиотека может изменить источник микрофона. Однако я не уверен, что это возможно.

Вопрос: Знаете ли вы, как я могу решить эту проблему?

Я видел несколько приложений, которые справляются с этой задачей, но я понятия не имею, что они делают для выполнения этой задачи.

0 ответов

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