如何在ios中实现pjsip视频调用

如何在ios中实现pjsip视频调用,ios,pjsip,Ios,Pjsip,使用pjsip实现音频调用正常工作,但不工作视频调用 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_settin

使用pjsip实现音频调用正常工作,但不工作视频调用

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);
}
我应用了以下更改:

//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进行视频调用

任何人都有关于视频通话的想法或步骤,那么请帮助我


谢谢你

这个题目太大了,如果你想得到一个好的答案,我想你需要把你的问题细化成一个更小更具体的问题

确保您已阅读并理解pjsip视频支持:

我会看看其他人做了什么(即使是在另一个平台上,如Android、Windows等),以及pjsip pjsua示例,我相信它支持视频,但我不确定它是否支持ios视频

获取一个已知的pjsip视频调用的好例子,这样您就知道它的样子以及它工作时日志的样子


然后,针对已知的好示例客户机尝试您的ios代码,看看它们的不同之处。如果你想不出来,至少你应该有足够的信息,能够就一个不适合你的特定情况提出更具体的问题。

我一直在接视频电话,我无法互相连接。你能给我一些建议吗。谢谢。你能看看我的问题吗。。我无法通过pjsip pjsua2示例android应用程序提高视频质量。。我们将非常感谢您的帮助