5

我现在正在编写一个应用程序,以便在用户进行一些练习时通过内部扬声器提供声音反馈。

现在我想添加一个功能来记录用户的心跳和通过3.5mm插孔插入手机的听诊器呼吸。问题是当我插入插孔时,扬声器不会播放任何声音,因为手机认为耳机已连接,声音将通过它们播放。

我想要实现的是通过插入手机的听诊器录制声音,同时通过内部扬声器播放声音。

基本上我使用两种播放声音的方法,MediaPlayer 和 TextToSpeech。

我在互联网上搜索,找到了这些文章:

在Android中强制通过扬声器输出声音

想在蓝牙耳机上播放 TTS

他们告诉我要做的是添加权限 MODIFY_AUDIO_SETTINGS 到清单

声明变量:

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

在 OnCreate 方法中:</p>

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);

但它们都不起作用。

有谁知道如何实现这个功能?任何想法都会有很大帮助。谢谢。

4

1 回答 1

-1

只需购买一个音频分配器......之后,你会得到两个端口,将外部麦克风插入一个端口,并将任何扬声器插入另一个端口......

于 2020-09-28T21:11:41.527 回答