Как использовать внутренний динамик для воспроизведения звука при подключении 3,5-мм разъема для записи звука с помощью внешнего микрофона

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

Теперь я хочу добавить функцию, чтобы записать пульс пользователя и дышать через стетоскоп, подключенный к телефону с помощью 3,5-мм разъема. Проблема в том, что когда я подключаю гнездо, динамик не будет воспроизводить звук, потому что телефон считает, что наушники подключены, и звук будет воспроизводиться через них.

То, что я хочу достичь, – записать звук с помощью стетоскопа, подключенного к телефону, во время воспроизведения звука через внутренний динамик.

В основном я использую два способа воспроизведения звука, MediaPlayer и TextToSpeech.

Я искал в Интернете, нашел эти статьи:

Формирование звука через динамик в Android

Хотите играть в TTS на Bluetooth-гарнитуре

Мне сказали, что нужно добавить разрешение MODIFY_AUDIO_SETTINGS, чтобы показать

Объявлять переменные:

MediaPlayer mediaPlayer; AudioManager mAudioManager; HashMap<String, String> mHashAlarm = new HashMap<String, String>(); 

В методе OnCreate:

 mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); mAudioManager.setSpeakerphoneOn(true); mediaPlayer = MediaPlayer.create(context, R.raw.ding); mHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_STREAM, String.valueOf(AudioManager.STREAM_MUSIC)); ... tts.speak(text, TextToSpeech.QUEUE_FLUSH, mHashAlarm); 

Но ни одна из них не работает.

Кто-нибудь знает, как достичь этой функции? Любые идеи будут очень полезны. Благодарю.

    Intereting Posts
    Проблема при автоинкрементном коде версии с Gradle Сохранить состояние активности (а не только некоторые переменные) при изменении ориентации Значок запуска установки по умолчанию Неправильное положение шкалы после применения эффекта масштабирования на холсте Android Как позиционировать кнопку в RelativeLayout через код? Как я могу найти утечки памяти в одностраничном приложении javascript? Воспроизведение youtube видео в приложении для Android В чем разница между AppBarLayout и панелью инструментов? Multi Primary Keys в Android SQLite Android – получить видимую область просмотра? Как захватить событие, когда пользователь отклоняет диалоговое окно предупреждения, нажав кнопку backKey на Android EOFException при использовании google может иметь конечные точки Java.lang.RuntimeException: Не удается получить информацию о камере Как вернуть значение из внутреннего класса? Как оптимизировать «имя класса» в макете Android XML?