本文主要是自己之前研究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创建过程