Add support webrtc/tcp mode to video player
This commit is contained in:
+7
-9
@@ -32,7 +32,7 @@ export class VideoRTC extends HTMLElement {
|
|||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* [config] Supported modes (webrtc, mse, hls, mp4, mjpeg).
|
* [config] Supported modes (webrtc, webrtc/tcp, mse, hls, mp4, mjpeg).
|
||||||
* @type {string}
|
* @type {string}
|
||||||
*/
|
*/
|
||||||
this.mode = "webrtc,mse,hls,mjpeg";
|
this.mode = "webrtc,mse,hls,mjpeg";
|
||||||
@@ -443,6 +443,8 @@ export class VideoRTC extends HTMLElement {
|
|||||||
video2.addEventListener("loadeddata", ev => this.onpcvideo(ev), {once: true});
|
video2.addEventListener("loadeddata", ev => this.onpcvideo(ev), {once: true});
|
||||||
|
|
||||||
pc.addEventListener("icecandidate", ev => {
|
pc.addEventListener("icecandidate", ev => {
|
||||||
|
if (ev.candidate && this.mode.indexOf("webrtc/tcp") >= 0 && ev.candidate.protocol === "udp") return;
|
||||||
|
|
||||||
const candidate = ev.candidate ? ev.candidate.toJSON().candidate : "";
|
const candidate = ev.candidate ? ev.candidate.toJSON().candidate : "";
|
||||||
this.send({type: "webrtc/candidate", value: candidate});
|
this.send({type: "webrtc/candidate", value: candidate});
|
||||||
});
|
});
|
||||||
@@ -474,16 +476,12 @@ export class VideoRTC extends HTMLElement {
|
|||||||
this.onmessage["webrtc"] = msg => {
|
this.onmessage["webrtc"] = msg => {
|
||||||
switch (msg.type) {
|
switch (msg.type) {
|
||||||
case "webrtc/candidate":
|
case "webrtc/candidate":
|
||||||
pc.addIceCandidate({
|
if (this.mode.indexOf("webrtc/tcp") >= 0 && msg.value.indexOf(" udp ") > 0) return;
|
||||||
candidate: msg.value,
|
|
||||||
sdpMid: "0"
|
pc.addIceCandidate({candidate: msg.value, sdpMid: "0"}).catch(() => console.debug);
|
||||||
}).catch(() => console.debug);
|
|
||||||
break;
|
break;
|
||||||
case "webrtc/answer":
|
case "webrtc/answer":
|
||||||
pc.setRemoteDescription({
|
pc.setRemoteDescription({type: "answer", sdp: msg.value}).catch(() => console.debug);
|
||||||
type: "answer",
|
|
||||||
sdp: msg.value
|
|
||||||
}).catch(() => console.debug);
|
|
||||||
break;
|
break;
|
||||||
case "error":
|
case "error":
|
||||||
if (msg.value.indexOf("webrtc/offer") < 0) return;
|
if (msg.value.indexOf("webrtc/offer") < 0) return;
|
||||||
|
|||||||
Reference in New Issue
Block a user