【问题标题】:no sound when using pjsip使用pjsip时没有声音
【发布时间】:2021-06-25 10:22:41
【问题描述】:

我遇到了 pjsip 的问题。我正在尝试使用 pjsua_call_make_call 拨打电话。它工作正常,但是当我在设备上接听此电话时,我听不到任何声音。但是,我可以在 iPhone 上看到一个图标,表示正在使用麦克风。有人遇到过这样的问题吗?

【问题讨论】:

    标签: ios audio call pjsip


    【解决方案1】:

    我遇到了类似的问题。我拨打了一个外呼电话,我在接听电话时可以听到设备上的音频,但在使用 pjsip 拨打电话时听不到设备上的任何音频。

    如果您的音频捕获似乎无法正常工作,请确保您拥有麦克风权限,并且您必须在连接时手动拨打 pjsua_set_snd_dev()。这里还有一些其他的故障排除https://trac.pjsip.org/repos/wiki/Getting-Started/iPhone#Commonproblems

    【讨论】:

      【解决方案2】:

      我没有使用 iOS 的经验,但我想您应该在 on_call_media_state 回调 (link) 中将音频流连接到某些设备。查看桌面应用程序的最小示例:

      pjsua_call_info ci;
      pjsua_call_get_info(call_id, &ci);
      
      for (unsigned i = 0; i < ci.media_cnt; i++) {
          if (ci.media[i].type == PJMEDIA_TYPE_AUDIO) {
              if (ci.media[i].status == PJSUA_CALL_MEDIA_ACTIVE) {
                  pjsua_conf_connect(ci.conf_slot, 0);
                  pjsua_conf_connect(0, ci.conf_slot);
              }
          }
      }
      

      编辑: 通话中默认音频流的iOS代码:

      var callinfo: pjsua_call_info = pjsua_call_info()
      pjsua_call_get_info(call_id, &callinfo)
      if(callinfo.media_status == PJSUA_CALL_MEDIA_ACTIVE) {
          pjsua_conf_connect(callinfo.conf_slot, 0)
          pjsua_conf_connect(0, callinfo.conf_slot)
      }
      

      【讨论】:

      • 感谢您的回答。问题是通过我更改了呼叫的设备来解决的。在之前的设备上,on_call_media_state 调用无法正常工作。
      猜你喜欢
      • 1970-01-01
      • 2014-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-19
      相关资源
      最近更新 更多