Я сейчас программирую приложение, чтобы дать вокальную обратную связь через внутренний динамик, когда пользователь выполняет некоторые упражнения.
Теперь я хочу добавить функцию, чтобы записать пульс пользователя и дышать через стетоскоп, подключенный к телефону с помощью 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);
Но ни одна из них не работает.
Кто-нибудь знает, как достичь этой функции? Любые идеи будут очень полезны. Благодарю.