首页 > 解决方案 > PJSIP IOS 视频通话窗口 ID 始终为 PJSUA_INVALID_ID

问题描述

我是 PJSIP 的新手,我想在 IOS 设备上实现 PJSIP。我确实成功连接了来电和去电。但我的视频流的窗口 ID 始终是 PJSUA_INVALID_ID。这是我的示例快速代码:

//on init() function

acc_cfg.vid_in_auto_show      = pj_true
acc_cfg.vid_out_auto_transmit = pj_true
acc_cfg.vid_cap_dev           = PJMEDIA_VID_DEFAULT_CAPTURE_DEV.rawValue
acc_cfg.vid_rend_dev          = PJMEDIA_VID_DEFAULT_RENDER_DEV.rawValue

var orient = PJMEDIA_ORIENT_ROTATE_90DEG;
pjsua_vid_dev_set_setting(
    PJMEDIA_VID_DEFAULT_CAPTURE_DEV.rawValue,
    PJMEDIA_VID_DEV_CAP_ORIENTATION,
    &orient,
    pj_true
)

// Add account
pjsua_acc_add(&acc_cfg, pj_true, nil);
private func on_call_media_state(call_id: pjsua_call_id) {
    var call_info = pjsua_call_info();
    guard pjsua_call_get_info(call_id, &call_info) == PJ_SUCCESS.rawValue else {return}
    
    let video_index = pjsua_call_get_vid_stream_idx(call_id)
    let medias: [pjsua_call_media_info] = tupleToArray(tuple: call_info.media);
    
    if video_index >= 0 {
        let media = medias[Int(video_index)]
        let window_id = media.stream.vid.win_in
        if window_id == PJSUA_INVALID_ID.rawValue {
            print("Invalid Window id...")
        }
    }
}

标签: iosswiftpjsip

解决方案


推荐阅读