如何使用内置扬声器播放声音,同时插入3.5毫米插孔以使用外部麦克风录制声音

时间:2013-02-05 23:33:15

标签: android audio-recording speaker

我正在编写一个应用程序,以便在用户执行一些练习时通过内部发言人提供声音反馈。

现在我想添加一个功能来记录用户的心跳,并通过一个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>();
在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);

但它们都不起作用。

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

1 个答案:

答案 0 :(得分:-1)

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