我正在构建一个在来电时播放背景音乐的应用程序。
当我接到来电时,它可以正常工作,但它会在外部扬声器上启动音乐,但是当我接听电话时,我的setSpeakerphoneOn(true)
可以在外部扬声器上播放音乐和 call 者语音,但麦克风无法拾取该播放声音,只能拾取我的声音。
我在哪里错我不知道。任何人都知道,请让我知道。我会很感激。
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();
最佳答案
通过电话扬声器播放音频并通过电话麦克风录制的任何音频质量都会很差,因为电话扬声器通常效果不佳,而且您很少处于无噪音,无回声的环境中。
至于为什么在您的用例中音乐被静音或严重衰减:您的手机可能正在使用两个(或更多)麦克风进行噪声抑制,其中来自一个麦克风的信号可用作噪声中的一种引用。您周围的环境。
该算法的目标是消除所有周围的噪音,以便通话另一端的人只能听到您的声音。根据麦克风的位置和算法的调整,您正在播放的音乐可能被认为是噪声,因此在上行链路信号中被抑制。
关于java - 在android中同时在外部扬声器上播放声音和在内部扬声器上进行主动通话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13084853/