我将 PJSIP 与 android 集成在一起。在我的应用程序中拨打电话时,扬声器工作正常,但录制麦克风音量太强低。我的声音不能被另一方所能忍受。
注意:但在某些手机中,它运行正常。
即使我尝试使用 adjustStreamVolume(),setStreamVolume(),setMode(),adjustVolume()方法来增加音量,但无论如何都不会增加。请给我一个解决此问题的建议,以增加Android或PJSIP中的麦克风音量级别。
先谢谢。
答案 0 :(得分:4)
对我来说setStreamVolume
等等更多地用于扬声器而不是控制麦克风。
从PJSIP docs,您可以看到有一种方法可以调整收到的信号电平。
您可以像以下一样使用它,其中音量介于0
和2.0
之间。
pjsua_conf_adjust_rx_level(0, volume);
我在一些地方看到你可能需要root访问权来修改这个参数,或者你需要一个MediaTek芯片。
您可以做的是直接增加流的增益。这个answer向您展示了如何做到这一点,增益也在同一范围内。
答案 1 :(得分:3)
问题是当我们的应用程序通过麦克风访问时,麦克风音量级别太低。当你的音量很小时,你需要检查多个东西。
其中一个是使用麦克风时的音频管理器模式。
获取Android音频管理器的模式::
AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
long mode = am.getMode();
Log.e(TAG,"audio mode "+mode);
设置Android音频管理器的模式::
AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
am.setMode(3);
您可以通过以上代码为您的应用访问音频管理器的模式。
有
1.MODE_NORMAL
2.MODE_RINGTONE
3.MODE_IN_CALL
4.MODE_IN_COMMUNICATION
P.S。:每当您更改AudioManager的模式时,请在使用麦克风后更改为MODE_NORMAL,否则在重新启动手机后它将无法正常工作。