在外部扬声器上播放声音,同时在内部扬声器上有效调用

时间:2012-10-26 10:06:39

标签: java android audio playback

我正在构建一个在来电时播放背景音乐的应用。

当我接到来电时它工作正常它会在外接扬声器上启动音乐但是当我接听电话时我有setSpeakerphoneOn(true)在外接音箱上播放音乐和来电语音但麦克风不接听播放声音只收拾我的声音。

我错在哪里我不知道。任何人都知道,请让我知道。我会很感激。

m_audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
Log.d("Is phone speaker : ","IDLE-1-->"+ m_audioManager.isSpeakerphoneOn());
m_audioManager.setMode(AudioManager.MODE_IN_CALL);    
m_audioManager.setSpeakerphoneOn(true); 
RecieverDialog.mp.start();

1 个答案:

答案 0 :(得分:0)

通过在手机的扬声器中播放并通过手机麦克风录制的任何音频质量都很差,因为手机扬声器通常不是很好,而且您很少处于无噪音,消声环境中。

至于为什么音乐会在您的使用情况下变得静音或严重衰减:您的手机可能会使用两个(或更多)麦克风进行噪音抑制,其中来自一个麦克风的信号可用作一种参考你周围环境的噪音。
该算法的目标是消除所有周围的噪声,以便呼叫另一端的人只听到你的声音。根据麦克风的位置和算法的调整,您正在播放的音乐可能被视为噪声,因此在上行链路信号中被抑制。