2

我有一个使用 PJSUA2 进行 VoIP 通信的 Android 项目,其他一切都很好。但是,我遇到了一个问题,即我无法让音量控件在显示我的活动呼叫的活动中工作。我已经尝试按照推荐的方式进行操作-

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

这没有任何作用。我需要知道使用 OnKey Listeners 是否是手动增加和减少音量的可行替代方案,或者我是否完全遗漏了某些东西,这将使我以首选方式进行操作。

4

3 回答 3

2

当呼叫处于连接状态时,您必须将音频模式设置为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);
于 2017-08-15T11:00:02.587 回答
0

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

于 2017-08-14T12:24:04.127 回答
0

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

setVolumeControlStream(AudioManager.STREAM_VOICE_CALL);

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

于 2021-07-01T14:37:04.410 回答