如何使用PJSUA2 for Android管理音频输出电平

时间:2017-02-16 01:11:47

标签: android volume pjsip pjsua2

我有一个使用PJSUA2进行VoIP通信的Android项目,其他一切工作正常。然而,我遇到了一个问题,我无法让Volume控件在显示我的活动调用的Activity中工作。我尝试过推荐的方式 -

audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
setVolumeControlStream(AudioManager.STREAM_MUSIC);

这没有任何作用。我需要知道使用OnKey Listeners是否是手动增加和减少音量的可行替代方案,或者如果我完全遗漏了某些内容,那么我将首选它。

3 个答案:

答案 0 :(得分:1)

当呼叫处于连接状态时,您必须将音频模式设置为MODE_IN_COMMUNICATION,并在断开连接时设置为MODE_NORMAL

// set mode to 3 to indicate MODE_IN_COMMUNICATION mode
((AudioManager) getSystemService(Context.AUDIO_SERVICE)).setMode(3);
// set audio mode to normal again on call disconnection
((AudioManager) getSystemService(Context.AUDIO_SERVICE)).setMode(AudioManager.MODE_NORMAL);

答案 1 :(得分:0)

所以我终于想出了合理地做到这一点的方法,PJSUA是实现我自己的按键处理程序,然后相应地改变Rx音频等级。希望这可以帮助那些像我一样陷入困境的人。

答案 2 :(得分:0)

Pjsip 默认使用语音通信/电话流来播放音频。要使用系统音量控制来控制音量,您应该调整通话音量,而不是媒体/音乐音量:

setVolumeControlStream(AudioManager.STREAM_VOICE_CALL);

如果您希望音频实际上作为媒体/音乐类型的流播放并由该音量滑块控制,请参阅我的建议以了解如何执行此操作here