如何检查RTCPeerConnection对象中使用的sdp计划(plan-b或Unified-plan)?
我知道我可以在Chrome浏览器中致电
sdpSemantics
flane_pointers
可以在Chrome上运行,但不能在Safari上运行,如何在Safari上进行检查?
答案 0 :(得分:0)
经过研究,似乎没有确定的简单解决方案。
但是,根据文档,我们可以根据一种类型的轨道超过1条时SDP的外观来区分Plan-b
/ unified-plan
。
在统一计划中,同一类型的每个轨道在SDP中都有一个单独的m=
部分,而在Plan-B
中则将它们分组在一起。
这是工作代码段:
function isUnifiedPlanEnabled() {
const canvas = document.createElement('canvas');
const track = canvas.captureStream(1).getTracks()[0];
const pc = new RTCPeerConnection();
pc.addTrack(track);
pc.addTrack(track.clone());
return pc.createOffer().then(offer => {
const sdpRows = offer.sdp.split('\n')
const mVideoRows = sdpRows.filter(row => row.indexOf('m=video') === 0)
return mVideoRows.length === 2
})
}