整体架构
目录结构
运行机制
peerConnection 调用过程
从上图中可以得到以下结论:
-
Stream中可以包含一个或多个音频或视频轨.
-
PeerConnection内部有两个线程: worker thread 和 signal thread 是通过peer Connection factory 创建的.
-
peer connection factory 不仅可以创建peerconnection 还可以创建local media stream和local audio/video track.
-
stream 的addAudioTrack / addVideoTrack 接口可以将track添加到stream中.
-
peer connection的addStream接口可以将流添加到peerconnection上.
-
多个流复用同一个peer connection.
调用时序图
-
应用层创建RTCPeerConnectionFactory对象
-
RTCPeerConnectionFactory创建peer connection
-
将track添加到stream中, 将stream添加到peer connection中
-
addstream会触发流的变化进而触发本地生成offer sdp描述信息
-
通过TCP传输将本地offer 发送给远端, 并将远端返回的answer 交给peer connection 从而完成协商和媒体连接
-
当远端有流发送过来之后, peerconnection 会交给应用层(peerconn section observe)进行处理.