2017-02-08 60 views
1

我有一个html + javascript代码,模拟我和我自己之间的webrtc videocall(我充当第一和第二同行)。在WebRTC中解析SDP

我想识别和显示只控制台a=fingerprint SDP属性。 在JavaScript中,我可以这样做吗?我可以在peerconnection.createOffer()退货报价后做到这一点。

回答

2

SDP是一种面向行的格式,因此您可以将它分成几行,然后搜索以'a = fingerprint:'开头的格式,然后将其分解为其组件(哈希算法和指纹本身)。 像这样(需要Chrome 56+或Firefox):

var pc = new RTCPeerConnection(); 
pc.createOffer({offerToReceiveAudio: 1}) 
.then(function (offer) { 
    let lines = offer.sdp.split('\n') 
     .map(l => l.trim()); // split and remove trailing CR 
    lines.forEach(function(line) { 
    if (line.indexOf('a=fingerprint:') === 0) {  
     let parts = line.substr(14).split(' '); 
     console.log('algorithm', parts[0]); 
     console.log('fingerprint', parts[1]); 
    } 
    }) 
}) 
+0

感谢您的真棒回答! – pier92

+0

Hanckle如何修改函数,如果我不想识别“a =指纹”部分,还需要“算法”和“指纹”值。 – pier92

+0

@Phillip Hancke你如何改变一条生产线,并重新构建它,最终拥有完整的SDP? – mrks