webrtc (3) 使用webrtc Native API实现视频通话

本文详细记录了使用WebRTC C++接口实现iOS视频通话的过程中遇到的挑战,包括显示问题、自环通话失败以及解码失败等关键问题的解决方案。通过引入WebRTC源代码并理解VideoRenderIosView类,解决了画面显示,同时指出自环通话会导致解码失败和SSRC冲突,必须避免。此外,还提到了启动顺序、关键帧丢失和网络连接等问题,并给出了相应解决办法。
摘要由CSDN通过智能技术生成

经过几天折腾终于把视频通信搞定了,中间走了很多弯路,其实很简单,原本一天就可以搞定的。


这篇主要记录中间遇到的坑,全是精华。


我主要是使用C++接口,调用Native API,没有使用Peerconnection功能,我所调用的接口,都在src/webrtc/video_engine目录下。

首先在上一篇编译完成以后,把库和头文件都加进来,头文件需要什么就加什么

我主要用到了以下接口:


#import "vie_base.h"
#import "vie_capture.h"
#import "vie_codec.h"
#import "vie_errors.h"
#import "vie_network.h"
#import "vie_render.h"
#import "vie_rtp_rtcp.h"
#import "vie_channel.h"

主要的代码部分如下:


- (void)startVideoEngine
{
    _vieEngine = webrtc::VideoEngine::Create();
    _vieBase = webrtc::ViEBase::GetInterface(_vieEngine);
    _vieCapture = webrtc::ViECapture::GetInterface(_vieEngine);
    _vieRender = webrtc::ViERender::GetInterface(_vieEngine);
    _vieCodec = webrtc::ViECodec::GetInterface(_vieEngine);
    _vieNetwork = webrtc::ViENetwork::GetInterface(_vieEngine);
    _vieRtpRtcp = webrtc::ViERTP_RTCP::GetInterface(_vieEngine);
    
    _vieEngine->SetTraceFilter(webrtc::kTraceAll);
   
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值