注:以下图片来自慕课网,侵权可删
RTCPeerConnection是WebRTC的核心类
- 基本格式
pc = new RTCPeerConnection([configuration])
RTCPeerConnection方法分类
- 媒体协商
- Stream/Track
- 传输相关方法
- 统计相关方法
媒体协商过程
A创建offer形成一个SDP,通过云端信令channel传给B,在传之前要调一个setLocalDescription方法,触发一个非常重要的作用就是收集候选者;B端收到offer时,调用setRemoteDescription,将offer形成的SDP数据,放到自己远端的描述信息的槽里,然后回复一个Answer,Answer回复的是B本机的所有的媒体信息,网络信息,也会调用setLocalDescription方法,触发收集候选者;A收到Answer后存到自己的槽中;每个人都拿到两个SDP信息,在内部进行协商,取出交集,协商过程建立完成,进行下一步工作
媒体协商方法
- createOffer
基本格式
promise = myPeerConnection.createOffer([options]) - createAnswer
基本格式
promise = myPeerConnection.createAnswer([options]) - setLocalDescription
基本格式
promise = myPc.setLocalDescription(sessionDescription)
sessionDescription是createOffer或createAnswer创建成功的结果 - setRemoteDescription
基本格式
promise = myPc.setRemoteDescription(sessionDescription)
sessionDescription是createOffer或createAnswer创建成功的结果
Track方法
- addTrack
基本格式
rtpSender = myPc.addTrack(track, stream...)
track:添加到RTCPeerConnection中的媒体轨(音频track/视频track)
stream:getUserMedia中拿到的流,指定track所在的stream - removeTrack
基本格式
myPc.remoteTrack(rtpSender)
重要事件
- onnegotiationneeded 协商事件
- onicecandidate 收到候选者时触发的事件
网友评论