本文主要是自己之前研究WebRTC代码结构时的一些资料(包括Android,iOS,PC),文章来自博客园RTC.Blacker,转载请说明出处。
1、WEBRTC模块:音频数据采集、发送、接收、播放调用过程:



2、WEBRTC模块:视频数据采集、发送、接收、播放调用过程:






3、libjingle模块:发送、接收数据包调用过程:
3.1、底层包发送(通过注册transport来实现包的发送,逻辑基本上跟之前的一样)

3.2、视频包发送:

3.3、音频包发送:

3.4、收到视频包:

3.5、收到音频包:

4、libjingle模块:ICE连通性检查过程:
4.1、被呼叫者(收到offer)根据remotecandidate创建连接并执行Ping:

4.2、呼叫者(发送offer)根据remotecandidate创建连接并执行Ping:

4.3、收到Ping响应,更改连接状态:

4.4、将connection标志位可读

4.5、连接已成功建立,开始收发数据:

4.6、AsyncUDPSocket对象创建流程

4.7、transportchannelProxy创建过程
