【问题标题】:How do I manage the audio output levels with PJSUA2 for Android如何使用 PJSUA2 for Android 管理音频输出电平
【发布时间】:2017-02-16 01:11:46
【问题描述】:

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

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

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

【问题讨论】:

  • 我也有同样的问题@Hanut。运行我的应用程序时,某些手机提供了良好的音频级别,但在某些手机中,它无法听到且音频级别非常低。但是手机的音量总是很高。如何解决这个问题?你找到这个了吗?请帮帮我

标签: android volume pjsip pjsua2


【解决方案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);

【讨论】:

  • 它对我有用。我所做的只是在通话开始时设置 audioManager?.mode = AudioManager.MODE_IN_COMMUNICATION 并在通话结束时设置 audioManager?.mode = AudioManager.MODE_NORMAL。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    setVolumeControlStream(AudioManager.STREAM_VOICE_CALL);
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-29
      • 1970-01-01
      • 2016-02-05
      • 1970-01-01
      • 1970-01-01
      • 2013-09-23
      相关资源
      最近更新 更多