我正在编写一个应用程序,以便在用户执行一些练习时通过内部发言人提供声音反馈。
现在我想添加一个功能来记录用户的心跳,并通过一个3.5毫米插孔插入手机的听诊器呼吸。问题是,当我插上插孔时,扬声器将不会播放任何声音,因为手机认为耳机已连接,声音将通过它们播放。
我想要达到的目的是通过插入手机的听诊器录制声音,同时通过内置扬声器播放声音。
基本上我使用两种方式播放声音,MediaPlayer和TextToSpeech。
我在互联网上搜索,找到了这些文章:
Forcing sound output through speaker in Android
want to play TTS on Bluetooth headset
他们告诉我要做的是添加权限MODIFY_AUDIO_SETTINGS到清单
声明变量:
MediaPlayer mediaPlayer;
AudioManager mAudioManager;
HashMap<String, String> mHashAlarm = new HashMap<String, String>();
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);
但它们都不起作用。
有谁知道如何实现这个功能?任何想法都会有很多帮助。感谢。
答案 0 :(得分:-1)
只需购买一个音频分配器...之后,您将获得两个端口,将您的外部麦克风插入一个,而将任何扬声器插入另一个....