【发布时间】:2021-06-25 10:22:41
【问题描述】:
我遇到了 pjsip 的问题。我正在尝试使用 pjsua_call_make_call 拨打电话。它工作正常,但是当我在设备上接听此电话时,我听不到任何声音。但是,我可以在 iPhone 上看到一个图标,表示正在使用麦克风。有人遇到过这样的问题吗?
【问题讨论】:
我遇到了 pjsip 的问题。我正在尝试使用 pjsua_call_make_call 拨打电话。它工作正常,但是当我在设备上接听此电话时,我听不到任何声音。但是,我可以在 iPhone 上看到一个图标,表示正在使用麦克风。有人遇到过这样的问题吗?
【问题讨论】:
我遇到了类似的问题。我拨打了一个外呼电话,我在接听电话时可以听到设备上的音频,但在使用 pjsip 拨打电话时听不到设备上的任何音频。
如果您的音频捕获似乎无法正常工作,请确保您拥有麦克风权限,并且您必须在连接时手动拨打 pjsua_set_snd_dev()。这里还有一些其他的故障排除https://trac.pjsip.org/repos/wiki/Getting-Started/iPhone#Commonproblems
【讨论】:
我没有使用 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)
}
【讨论】: