WebRTC 原生API
它包括Stream和PeerConnection两部分,它们的结构图如下:
原生API代码地址
测试Demo地址
该API基于WebRTC 1.0: Real-time Communication Between Browsers做的再次封装,为原生开发App开发者提供便利;
呼叫时序图
拨打方的时序图
App的通过工厂方法创建本地媒体流,将本地流添加到新建的PeerConnection上,本地PeerConnection跟远端PeerConnection发送Offer以及接收到远端PeerConnection的Answer后然后就可以开始媒体通讯了。
接听方的时序图
App的PC观察者接收到远端发送的Offer,通过PC的工厂方法创建本地流添加到PC上,然后本地PC向远端PC发送Answer消息。然后开启媒体对话。
挂断时序图
App的PC观察者关闭PC,PC将状态改为kClosing,然后移除本地流,发送shutdown消息给远端PC,远端PC发送ok给本地PC,本地PC状态改为kClosed。
线程模型
主要使用了2个线程:signaling(信号线程)和worker
在signaling线程执行的任务有: 调用Stream APIs 、 PeerConnection APIs 以及所有回调
在worker线程执行的任务有:
- Stream APIs (mediastreaminterface.h)
- PeerConnection APIs (peerconnectioninterface.h)