RTCSessionDescription
Baseline
åºãå©ç¨å¯è½
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2017å¹´9æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
RTCSessionDescription ã¤ã³ã¿ã¼ãã§ã¤ã¹ã¯ãæ¥ç¶ (ã¾ãã¯æ¥ç¶ããäºå®ã®ãã®) ã®ä¸ç«¯ã¨ããã®æ§ææ¹æ³ãè¨è¿°ãã¾ããããããã® RTCSessionDescription ã¯ãã©ã®ãªãã¡ã¼/ã¢ã³ãµã¼äº¤æ¸ããã»ã¹ã使ç¨ãããã表ãè¨è¿°ã® type ã¨ãã»ãã·ã§ã³ã® SDP è¨è¿°åããæãã¾ãã
2 ã¤ã®ãã¢éã§æ¥ç¶ã交æ¸ããããã»ã¹ã§ã¯ã RTCSessionDescription ãªãã¸ã§ã¯ããããåããã¾ããããããã®èª¬æã¯ã説æã®éãæã対å¿ãã¦ããæ¥ç¶æ§æãªãã·ã§ã³ã®çµã¿åãããææ¡ãã¾ãã 2 ã¤ã®ãã¢éã§æ¥ç¶ã®æ§æãåæãããã¨ã交æ¸ã¯å®å
¨ã«å®äºãã¾ãã
ããããã£
RTCSessionDescription ã¯ä½ãããããã£ãç¶æ¿ãã¦ãã¾ããã
RTCSessionDescription.typeèªåå°ç¨-
åæåã§ããããã£ã¹ã¯ãªãã·ã§ã³ã®ç¨®é¡ã表ãã¾ãã
RTCSessionDescription.sdpèªåå°ç¨-
æååã§ãã»ãã·ã§ã³ã説æããããã® SDP ãå ¥ãã¾ãã
ã¤ã³ã¹ã¿ã³ã¹ã¡ã½ãã
RTCSessionDescription ã¯ä½ãã¡ã½ãããç¶æ¿ãã¦ãã¾ããã
RTCSessionDescription()-
æ°ãã
RTCSessionDescriptionãè¿ãã¾ãããã®å¼æ°ã¯RTCSessionDescriptionInitè¾æ¸ã§ãã (ä»»æã®) 2 ã¤ã®å¼æ°ãå«ã¿ã¾ãã RTCSessionDescription.toJSON()-
ãã®ãªãã¸ã§ã¯ãã® JSON ã«ãã表ç¾ãçæãã¦è¿ãã¾ããçæããã JSON ã¯ã
typeã¨sdpãå«ã¿ã¾ãã
ä¾
signalingChannel.onmessage = (evt) => {
if (!pc) start(false);
const message = JSON.parse(evt.data);
if (message.sdp) {
pc.setRemoteDescription(
new RTCSessionDescription(message),
() => {
// ãªãã¡ã¼ãåãåã£ãå ´åããã®ãªãã¡ã¼ã«å¯¾ãã¦å¿çããã
if (pc.remoteDescription.type === "offer") {
pc.createAnswer(localDescCreated, logError);
}
},
logError,
);
} else {
pc.addIceCandidate(
new RTCIceCandidate(message.candidate),
() => {},
logError,
);
}
};
仿§æ¸
| 仿§æ¸ |
|---|
| WebRTC: Real-Time Communication in Browsers > # rtcsessiondescription-class > |