【问题标题】:How to implement pjsip video call in ios如何在ios中实现pjsip视频通话
【发布时间】:2018-01-11 13:08:12
【问题描述】:

使用正常工作但不工作的视频通话的 pjsip 实现音频通话。

我应用了以下更改:

//sip初始化

pj_status_t sip_startup(app_config_t *app_config) 
{

pjsua_config cfg;
pjsua_config_default (&cfg);

cfg.cb.on_incoming_call = &on_incoming_call;
cfg.cb.on_call_media_state = &on_call_media_state;
cfg.cb.on_call_state = &on_call_state;
cfg.cb.on_reg_state2 = &on_reg_state2;
cfg.cb.on_call_media_event = &on_call_media_event;

// Init the logging config structure
pjsua_logging_config log_cfg;
pjsua_logging_config_default(&log_cfg);
log_cfg.console_level = 4;

// Init PJ Media
pjsua_media_config me_cfg;
pjsua_media_config_default(&me_cfg);


// Init the pjsua
status = pjsua_init(&cfg, &log_cfg, &me_cfg);
if (status != PJ_SUCCESS) error_exit("Error in pjsua_init()", status);

}

//应用sip连接时添加如下代码

pjsua_call_setting _call_setting;
 pjsua_call_setting_default(&_call_setting);

_call_setting.aud_cnt = 1;
_call_setting.vid_cnt = 1;

//当按下应用程序中的通话按钮时,调用此功能进行视频通话。

pj_status_t sip_dial(pjsua_acc_id acc_id, const char *number, 
 pjsua_call_id *call_id)
{
    pj_status_t status;
    pj_str_t uri = pj_str(destUri);

     status = pjsua_call_make_call(_acc_id, &uri, &(_call_setting), 
     NULL, NULL, NULL);
     if (status != PJ_SUCCESS) 
     error_exit("Error making call",  status);
}

//应用与视频代码相关的更改

static void on_call_media_state(pjsua_call_id call_id)
{
   pjsua_call_info ci;

   unsigned mi;

    pjsua_call_get_info(call_id, &ci);
    sip_ring_stop([SharedAppDelegate.aVoipManager pjsipConfig]);

    if(ci.media_status == PJMEDIA_TYPE_VIDEO)
    {
       NSLog(@"windows id : %d",ci.media[mi].stream.vid.win_in);
       NSLog(@"media id : %d",mi);
       if (ci.media_status != PJSUA_CALL_MEDIA_ACTIVE)
         return;
         [[XCPjsua sharedXCPjsua] 
         displayWindow:ci.media[mi].stream.vid.win_in];

    }
}

我应用了上述代码,但没有使用 pjsip 进行视频通话。

任何人有与视频通话相关的想法或步骤,请帮助我。

谢谢

【问题讨论】:

  • 我卡在接听视频通话中,无法相互连接。你能给我一些建议来做这个功能吗?谢谢。

标签: ios pjsip


【解决方案1】:

这个主题太大了,如果你想得到一个好的答案,我认为你需要将你的问题细化为一个更小更具体的问题。

确保您已阅读并理解 pjsip 视频支持: PJSip Video_Users_Guide PJSIP IOS Video Support

我会查找其他人所做的事情(即使它在另一个平台上,例如 Android、Windows 等)并查看我认为支持视频的 pjsip pjsua 示例,但我不确定它是否支持支持ios视频​​。

获取一个已知的 pjsip 视频通话的良好示例,以便您了解它的外观以及运行时日志的外观。

然后将您的 ios 代码与已知的良好示例客户端进行对比,看看它们有何不同。如果您无法弄清楚,至少您应该有足够的信息来针对不适合您的特定情况提出更具体的问题。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 2022-12-28
  • 2020-05-07
  • 2020-01-24
  • 1970-01-01
相关资源
最近更新 更多