ios - 如何在iOS中从调用方的通话中获取视频窗口?

标签 ios video pjsip

enter image description here我正在尝试使用 pjsip 实现视频通话功能。为此,我正在使用 vialerSipLib 演示应用程序。

这是我正在尝试的场景。

从电话 A 调用电话 B。来电和去电均可使用音频。但问题是,视频可以在phoneB(ReceiverSide)上运行,但我无法在phoneA(CallerSide)上获取视频。这是我的视频通话帐户配置。

我使用编解码器 H264 进行视频通话。

acc_cfg.vid_in_auto_show = PJ_TRUE;
acc_cfg.vid_out_auto_transmit = PJ_TRUE;

acc_cfg.vid_wnd_flags = PJMEDIA_VID_DEV_WND_BORDER | PJMEDIA_VID_DEV_WND_RESIZABLE;
acc_cfg.vid_cap_dev = PJMEDIA_VID_DEFAULT_CAPTURE_DEV;
acc_cfg.vid_rend_dev = PJMEDIA_VID_DEFAULT_RENDER_DEV;
acc_cfg.reg_retry_interval = 300;
acc_cfg.reg_first_retry_interval = 30;

这是我如何使用 callid 获取视频窗口。出现了一个黑色的窗口。或者有什么方法可以检查 ci.media 数组是否有有效的视频?

- (void) displayWindowWithVoid: (UIView *) parent call:(VSLCall *)call {

int vid_idx;
pjsua_vid_win_id wid;

vid_idx = pjsua_call_get_vid_stream_idx((int)call.callId);
if (vid_idx >= 0) {
    pjsua_call_info ci;

    pjsua_call_get_info((int)call.callId, &ci);
    wid = ci.media[vid_idx].stream.vid.win_in;

    ci.setting.vid_cnt = 1;

    pjsua_vid_win_info wi;
    if (pjsua_vid_win_get_info(wid, &wi) == PJ_SUCCESS) {

        pjsua_vid_win_set_show(wid, true);
        UIView *view = (__bridge UIView *)wi.hwnd.info.ios.window;
         [parent addSubview:view];
    }
}   }

如果有人可以告诉我一个视频通话客户端,以便我可以测试其行为。要么是应用程序端的问题,要么是服务器端的问题。任何帮助或建议将不胜感激。

最佳答案

我成功了。发布这个答案,因为这可能对任何其他人都有帮助,并且可以节省他的大部分时间。

您必须更改视频格式

pjmedia_vid_codec_param param;
pjsua_vid_codec_get_param(&videoCodecInfo[i].codec_id, &param);
param.ignore_fmtp = PJ_TRUE;

param.enc_fmt.det.vid.size.w = 1280;
param.enc_fmt.det.vid.size.h = 720;
param.enc_fmt.det.vid.fps.num = 30;
param.enc_fmt.det.vid.fps.denum = 1;
param.dec_fmt.det.vid.size.w = 1280;
param.dec_fmt.det.vid.size.h = 720;

可能正是您的服务器支持对您有帮助的格式。 如果您需要更多帮助。请告诉我

关于ios - 如何在iOS中从调用方的通话中获取视频窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56834692/

相关文章:

ios - 如何判断 PDFDocument 是否已加载到 PDFView

ios - 如何在 UIViewcontroller 中访问已安装的 pod 库宏字符串?

c++ - 回声抑制库?

SIP 客户端在取消时响应 481

sockets - React-Native:语音聊天

ios - MapKit MKCircle 在缩放级别上更改半径

ios - iOS 上的套接字 connect() 阻塞超过 30 秒

javascript - 强制浏览器更新缓存的 HTML5 视频对象

video - FFMPEG-无法为输出文件 #0 写入 header (编解码器参数不正确?): Operation not permitted Error initializing output stream 0:2 --

video - CLI 工具将 AVI 文件与 JPEG 格式视频分割