十九、媒体能力协商过程

注:以下图片来自慕课网,侵权可删

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 收到候选者时触发的事件

你可能感兴趣的:(十九、媒体能力协商过程)