关于webRTC的SDP格式(RTCConfiguration中的sdp_semantics)

webRTC的SDP格式,RTCConfiguration中的sdp_semantics

当我尝试用QQ浏览器和其它浏览器通讯时,报错如下:
关于webRTC的SDP格式(RTCConfiguration中的sdp_semantics)
查询资料得知,在web端,sdp_semantics有两个值,分别是“plan-b”和“unified-plan”,webRTC1.0规范要求的是“unified-plan”,Chrome71还是使用的“plan-b”,但是Chrome72就已经改成“unified-plan”,因此现在大多数浏览器都是使用的“unified-plan”,火狐更是推荐使用“unified-plan”,但是现在最新的QQ浏览器使用的还是Chrome70的内核。

因此我有考虑过根据Chrome内核版本分开设置sdp_semantics,但是据我测试发现,两端通讯若sdp_semantics格式不一致,就会报上面的错误,所以QQ与其他浏览器无法通讯。
关于webRTC的SDP格式(RTCConfiguration中的sdp_semantics)
这种情况,将sdp_semantics一键设置成“plan-b”可解决问题,火狐也可通讯,但是“plan-b”不是规范格式,只能根据项目需求做出取舍。

web端在RTCConfiguration中指定:

const configuration = {
    iceServers: [
      {
        ......
      },
    ],
    sdpSemantics:'plan-b'
  }

而PC端对应的SDP格式则是:“kDefault”和“kPlanB”,通过下面语句指定

SdpSemantics sdp_semantics = SdpSemantics :: kDefault;
SdpSemantics sdp_semantics = SdpSemantics :: kPlanB;

参考资料:
https://www.jianshu.com/p/5e29e6599188?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

https://www.pianshen.com/article/69381335613/

上一篇:MySQL Execution Plan--COUNT相关测试


下一篇:Flink程序开发步骤