2017-05-09 207 views
5

我有集成PJSIPandroid。在拨打我的应用程序时,扬声器工作正常但录音麦克风音量太。我的声音不能被对方所唾弃。如何增加Android PJSIP中的麦克风音量?

注意:但在某些手机中它正常工作。

即使我试图与adjustStreamVolume(),setStreamVolume(),setMode(),adjustVolume()方法来提高我的音量级别,但它无论如何也不能增加。请给我一个解决这个问题的建议,以增加Android或PJSIP中的麦克风音量。

在此先感谢。

+0

当你说〜“**在某些手机中工作正常**”时,你的意思是什么设备? –

+2

在moto e3 power中,redmi 3s主要手机的麦克风音量处于可接受的水平。但在联想k5加上麦克风音量非常低。我不知道如何增加麦克风的音量。 – NandhaKumar

回答

2

问题是当我们的应用程序通过麦克风访问时,麦克风音量级别太低。当你的音量很低时,你需要检查多件事情。

当使用麦克风时,其中之一是MODE OF THE AUDIO MANAGER。

获取Android的音频管理器:: Android的音频管理器::

AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 
am.setMode(3); 

您可以通过该访问音频管理模式的

AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 
long mode = am.getMode(); 
Log.e(TAG,"audio mode "+mode); 

设定模式的模式以上代码为您的应用程序。 有
1.MODE_NORMAL
2.MODE_RINGTONE
3.MODE_IN_CALL
4.MODE_IN_COMMUNICATION

附::每当您更改AudioManager的模式时,请在使用麦克风后更改为MODE_NORMAL,否则一旦重新启动移动设备将无法使用。

3

看起来对我来说setStreamVolume等更多地用于扬声器而不是控制麦克风。

PJSIP docs,你可以看到有一种方法可以调整接收到的信号电平。

您可以像下面一样使用它,其体积介于02.0之间。

pjsua_conf_adjust_rx_level(0, volume); 

我在这,你可能需要root访问权限无论如何修改该参数少数地方看到,或者你需要有一个联发科的芯片。

您可以做的是直接增加您流中的收益。这answer告诉你如何做到这一点,其中增益也在同一范围内。

+0

这会利用来自audiodev.h的** PJMEDIA_AUD_DEV_ROUTE_LOUDSPEAKER **常量吗? –

+1

@IgorGanapolsky通过查看调用的'pjmedia_conf_adjust_rx_level'和[this line](https://github.com/chakrit/pjsip/blob/b0af6c8fc8ed97bb03d3afa4ab42c24f46a9212b/pjmedia/src/pjmedia/conf_switch.c#L989),我不会我认为情况并非如此。 –

+0

@IgorGanapolsky PJMEDIA_AUD_DEV_ROUTE_LOUDSPEAKER仅供演讲人知道,但我想要增加麦克风音量。 – NandhaKumar