665 lines
25 KiB
JavaScript
665 lines
25 KiB
JavaScript
|
function H5sPlayerWS(t) {
|
||
|
this.sourceBuffer,
|
||
|
this.buffer = [],
|
||
|
this.t,
|
||
|
this.s,
|
||
|
this.i,
|
||
|
this.o,
|
||
|
this.h,
|
||
|
this.l = 0,
|
||
|
this.u = 0,
|
||
|
this.S = 0,
|
||
|
this.v = !1,
|
||
|
this.k = !1,
|
||
|
this.p = !1,
|
||
|
this.H,
|
||
|
this.P = t,
|
||
|
console.log("Websocket Conf:", t),
|
||
|
this.W = t.videoid,
|
||
|
this.C = t.token,
|
||
|
void 0 === this.W ? (this.I = t.videodom, console.log(t.token, "use dom directly")) : (this.I = document.getElementById(this.W), console.log(t.token, "use videoid")),
|
||
|
this.s = this.I;
|
||
|
var s = this.P.protocol + "//" + this.P.host + this.P.rootpath + "api/v1/GetImage?token=" + this.C + "&session=" + this.P.session;
|
||
|
this.I.setAttribute("poster", s)
|
||
|
}
|
||
|
function H5sPlayerHls(t) {
|
||
|
this.i,
|
||
|
this.h,
|
||
|
this.P = t,
|
||
|
this.W = t.videoid,
|
||
|
this.C = t.token,
|
||
|
this.R,
|
||
|
this.m = t.hlsver,
|
||
|
void 0 === this.W ? (this.I = t.videodom, console.log(t.token, "use dom directly")) : (this.I = document.getElementById(this.W), console.log(t.token, "use videoid")),
|
||
|
this.A = this.I,
|
||
|
this.A.type = "application/x-mpegURL",
|
||
|
this.T = 0,
|
||
|
this.M = 0;
|
||
|
var s = this.P.protocol + "//" + window.location.host + "/api/v1/GetImage?token=" + this.C + "&session=" + this.P.session;
|
||
|
this.I.setAttribute("poster", s)
|
||
|
}
|
||
|
function H5sPlayerRTC(t) {
|
||
|
this.i,
|
||
|
this.o,
|
||
|
this.h,
|
||
|
this.l = 0,
|
||
|
this.u = 0,
|
||
|
this.S = 0,
|
||
|
this.v = !1,
|
||
|
this.k = !1,
|
||
|
this.P = t,
|
||
|
this.W = t.videoid,
|
||
|
this.C = t.token,
|
||
|
void 0 === this.W ? (this.I = t.videodom, console.log(t.token, "use dom directly")) : (this.I = document.getElementById(this.W), console.log(t.token, "use videoid")),
|
||
|
this.s = this.I,
|
||
|
this.O = null,
|
||
|
this.J = {
|
||
|
optional: [{
|
||
|
DtlsSrtpKeyAgreement: !0
|
||
|
}]
|
||
|
},
|
||
|
this.N = {
|
||
|
mandatory: {
|
||
|
offerToReceiveAudio: !0,
|
||
|
offerToReceiveVideo: !0
|
||
|
}
|
||
|
},
|
||
|
this.g = {
|
||
|
B: []
|
||
|
},
|
||
|
this.L = [];
|
||
|
var s = this.P.protocol + "//" + this.P.host + this.P.rootpath + "api/v1/GetImage?token=" + this.C + "&session=" + this.P.session;
|
||
|
this.I.setAttribute("poster", s)
|
||
|
}
|
||
|
function createRTCSessionDescription(t) {
|
||
|
return console.log("createRTCSessionDescription "),
|
||
|
new RTCSessionDescription(t)
|
||
|
}
|
||
|
function H5sPlayerAudio(t) {
|
||
|
this.buffer = [],
|
||
|
this.i,
|
||
|
this.v = !1,
|
||
|
this.k = !1,
|
||
|
this.P = t,
|
||
|
console.log("Aduio Player Conf:", t),
|
||
|
this.C = t.token,
|
||
|
this.D = new AudioContext
|
||
|
}
|
||
|
function H5sPlayerAudBack(t) {
|
||
|
this.buffer = [],
|
||
|
this.i,
|
||
|
this.v = !1,
|
||
|
this.k = !1,
|
||
|
this.P = t,
|
||
|
this.U = 0,
|
||
|
console.log("Aduio Back Conf:", t),
|
||
|
this.C = t.token,
|
||
|
this.D = new AudioContext
|
||
|
}
|
||
|
function float32ToInt16(t) {
|
||
|
for (l = t.length, buf = new Int16Array(l); l--;) buf[l] = 32767 * Math.min(1, t[l]);
|
||
|
return buf
|
||
|
}
|
||
|
H5sPlayerWS.prototype.G = function() {
|
||
|
console.log("Try Reconnect...", this.v),
|
||
|
!0 === this.v && (console.log("Reconnect..."), this._(this.C), this.v = !1),
|
||
|
console.log("Try Reconnect...", this.v)
|
||
|
},
|
||
|
H5sPlayerWS.prototype.K = function(t) {
|
||
|
var s;
|
||
|
console.log("H5SWebSocketClient");
|
||
|
try {
|
||
|
"http:" == this.P.protocol && (s = "undefined" != typeof MozWebSocket ? new MozWebSocket("ws://" + this.P.host + t) : new WebSocket("ws://" + this.P.host + t)),
|
||
|
"https:" == this.P.protocol && (console.log(this.P.host), s = "undefined" != typeof MozWebSocket ? new MozWebSocket("wss://" + this.P.host + t) : new WebSocket("wss://" + this.P.host + t)),
|
||
|
console.log(this.P.host)
|
||
|
} catch(t) {
|
||
|
return void alert("error")
|
||
|
}
|
||
|
return s
|
||
|
},
|
||
|
H5sPlayerWS.prototype.V = function() {
|
||
|
if (null !== this.sourceBuffer && void 0 !== this.sourceBuffer) {
|
||
|
if (0 !== this.buffer.length && !this.sourceBuffer.updating) try {
|
||
|
var t = this.buffer.shift(),
|
||
|
s = new Uint8Array(t);
|
||
|
this.sourceBuffer.appendBuffer(s)
|
||
|
} catch(t) {
|
||
|
console.log(t)
|
||
|
}
|
||
|
} else console.log(this.sourceBuffer, "is null or undefined")
|
||
|
},
|
||
|
H5sPlayerWS.prototype.j = function() {
|
||
|
try {
|
||
|
var t = {
|
||
|
cmd: "H5_KEEPALIVE",
|
||
|
nSpeed: "1.0",
|
||
|
nTime: "0"
|
||
|
};
|
||
|
this.i.send(JSON.stringify(t))
|
||
|
} catch(t) {
|
||
|
console.log(t)
|
||
|
}
|
||
|
},
|
||
|
H5sPlayerWS.prototype.q = function(t) {
|
||
|
if (!0 !== this.k) return ! 1 === this.p ? (this.H = String.fromCharCode.apply(null, new Uint8Array(t.data)), this.F(this), void(this.p = !0)) : (this.buffer.push(t.data), void this.V())
|
||
|
},
|
||
|
H5sPlayerWS.prototype.F = function(t) {
|
||
|
try {
|
||
|
window.MediaSource = window.MediaSource || window.WebKitMediaSource,
|
||
|
window.MediaSource || console.log("MediaSource API is not available");
|
||
|
var s = 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"';
|
||
|
"MediaSource" in window && MediaSource.isTypeSupported(s) ? console.log("MIME type or codec: ", s) : console.log("Unsupported MIME type or codec: ", s),
|
||
|
t.t = new window.MediaSource,
|
||
|
t.s.autoplay = !0,
|
||
|
console.log(t.W);
|
||
|
t.s.src = window.URL.createObjectURL(t.t),
|
||
|
t.s.play(),
|
||
|
t.t.addEventListener("sourceopen", t.X.bind(t), !1)
|
||
|
} catch(t) {
|
||
|
console.log(t)
|
||
|
}
|
||
|
},
|
||
|
H5sPlayerWS.prototype.X = function() {
|
||
|
console.log("Add SourceBuffer"),
|
||
|
this.sourceBuffer = this.t.addSourceBuffer(this.H),
|
||
|
this.t.duration = 1 / 0,
|
||
|
this.t.removeEventListener("sourceopen", this.X, !1),
|
||
|
this.sourceBuffer.addEventListener("updateend", this.V.bind(this), !1)
|
||
|
},
|
||
|
H5sPlayerWS.prototype._ = function(t) {
|
||
|
this.s.autoplay = !0;
|
||
|
var s = "api/v1/h5swsapi";
|
||
|
s = this.P.rootpath + s + "?token=" + t + "&session=" + this.P.session,
|
||
|
console.log(s),
|
||
|
this.i = this.K(s),
|
||
|
console.log("setupWebSocket", this.i),
|
||
|
this.i.binaryType = "arraybuffer",
|
||
|
(this.i.Y = this).i.onmessage = this.q.bind(this),
|
||
|
this.i.onopen = function() {
|
||
|
console.log("wsSocket.onopen", this.Y),
|
||
|
this.Y.o = setInterval(this.Y.Z.bind(this.Y), 1e4),
|
||
|
this.Y.h = setInterval(this.Y.j.bind(this.Y), 1e3)
|
||
|
},
|
||
|
this.i.onclose = function() {
|
||
|
console.log("wsSocket.onclose", this.Y),
|
||
|
!0 === this.Y.k ? console.log("wsSocket.onclose disconnect") : this.Y.v = !0,
|
||
|
this.Y.$(this.Y),
|
||
|
this.Y.tt(this.Y),
|
||
|
this.Y.H = "",
|
||
|
this.Y.p = !1
|
||
|
}
|
||
|
},
|
||
|
H5sPlayerWS.prototype.$ = function(t) {
|
||
|
console.log("Cleanup Source Buffer", t);
|
||
|
try {
|
||
|
t.sourceBuffer.removeEventListener("updateend", t.V, !1),
|
||
|
t.sourceBuffer.abort(),
|
||
|
document.documentMode || /Edge/.test(navigator.userAgent) ? console.log("IE or EDGE!") : t.t.removeSourceBuffer(t.sourceBuffer),
|
||
|
t.sourceBuffer = null,
|
||
|
t.t = null,
|
||
|
t.buffer = []
|
||
|
} catch(t) {
|
||
|
console.log(t)
|
||
|
}
|
||
|
},
|
||
|
H5sPlayerWS.prototype.tt = function(t) {
|
||
|
console.log("CleanupWebSocket", t),
|
||
|
clearInterval(t.h),
|
||
|
clearInterval(t.o),
|
||
|
t.l = 0,
|
||
|
t.u = 0,
|
||
|
t.S = 0
|
||
|
},
|
||
|
H5sPlayerWS.prototype.Z = function() { ! 0 === this.k && (console.log("CheckSourceBuffer has been disconnect", this), clearInterval(this.h), clearInterval(this.o), clearInterval(this.st));
|
||
|
try {
|
||
|
if (console.log("CheckSourceBuffer", this), this.sourceBuffer.buffered.length <= 0) {
|
||
|
if (this.l++, 8 < this.l) return console.log("CheckSourceBuffer Close 1"),
|
||
|
void this.i.close()
|
||
|
} else {
|
||
|
this.l = 0;
|
||
|
this.sourceBuffer.buffered.start(0);
|
||
|
var t = this.sourceBuffer.buffered.end(0),
|
||
|
s = t - this.s.currentTime;
|
||
|
if (5 < s || s < 0) return console.log("CheckSourceBuffer Close 2", s),
|
||
|
void this.i.close();
|
||
|
if (t == this.u) {
|
||
|
if (this.S++, 3 < this.S) return console.log("CheckSourceBuffer Close 3"),
|
||
|
void this.i.close()
|
||
|
} else this.S = 0;
|
||
|
this.u = t
|
||
|
}
|
||
|
} catch(t) {
|
||
|
console.log(t)
|
||
|
}
|
||
|
},
|
||
|
H5sPlayerWS.prototype.connect = function() {
|
||
|
this._(this.C),
|
||
|
this.st = setInterval(this.G.bind(this), 3e3)
|
||
|
},
|
||
|
H5sPlayerWS.prototype.disconnect = function() {
|
||
|
console.log("disconnect", this),
|
||
|
this.k = !0,
|
||
|
clearInterval(this.st),
|
||
|
null != this.i && (this.i.close(), this.i = null),
|
||
|
console.log("disconnect", this)
|
||
|
},
|
||
|
H5sPlayerWS.prototype.pause = function() {
|
||
|
try {
|
||
|
var t = {
|
||
|
cmd: "H5_PAUSE",
|
||
|
nSpeed: "1.0",
|
||
|
nTime: "0"
|
||
|
};
|
||
|
this.i.send(JSON.stringify(t))
|
||
|
} catch(t) {
|
||
|
console.log(t)
|
||
|
}
|
||
|
},
|
||
|
H5sPlayerWS.prototype.resume = function() {
|
||
|
try {
|
||
|
var t = {
|
||
|
cmd: "H5_RESUME",
|
||
|
nSpeed: "1.0",
|
||
|
nTime: "0"
|
||
|
};
|
||
|
this.i.send(JSON.stringify(t))
|
||
|
} catch(t) {
|
||
|
console.log(t)
|
||
|
}
|
||
|
},
|
||
|
H5sPlayerWS.prototype.seek = function(t) {
|
||
|
try {
|
||
|
var s = {
|
||
|
cmd: "H5_SEEK",
|
||
|
nSpeed: "1.0"
|
||
|
};
|
||
|
s.nTime = t,
|
||
|
this.i.send(JSON.stringify(s))
|
||
|
} catch(t) {
|
||
|
console.log(t)
|
||
|
}
|
||
|
},
|
||
|
H5sPlayerWS.prototype.speed = function(t) {
|
||
|
try {
|
||
|
var s = {
|
||
|
cmd: "H5_SPEED"
|
||
|
};
|
||
|
s.nSpeed = t,
|
||
|
s.nTime = 0,
|
||
|
this.i.send(JSON.stringify(s))
|
||
|
} catch(t) {
|
||
|
console.log(t)
|
||
|
}
|
||
|
},
|
||
|
H5sPlayerHls.prototype.K = function(t) {
|
||
|
var s;
|
||
|
console.log("H5SWebSocketClient");
|
||
|
try {
|
||
|
"http:" == this.P.protocol && (s = "undefined" != typeof MozWebSocket ? new MozWebSocket("ws://" + this.P.host + t) : new WebSocket("ws://" + this.P.host + t)),
|
||
|
"https:" == this.P.protocol && (console.log(this.P.host), s = "undefined" != typeof MozWebSocket ? new MozWebSocket("wss://" + this.P.host + t) : new WebSocket("wss://" + this.P.host + t)),
|
||
|
console.log(this.P.host)
|
||
|
} catch(t) {
|
||
|
return void alert("error")
|
||
|
}
|
||
|
return s
|
||
|
},
|
||
|
H5sPlayerHls.prototype.j = function() {
|
||
|
try {
|
||
|
var t = {
|
||
|
type: "keepalive"
|
||
|
};
|
||
|
this.i.send(JSON.stringify(t))
|
||
|
} catch(t) {
|
||
|
console.log(t)
|
||
|
}
|
||
|
},
|
||
|
H5sPlayerHls.prototype.q = function(t) {
|
||
|
console.log("HLS received ", t.data)
|
||
|
},
|
||
|
H5sPlayerHls.prototype._ = function(t) {
|
||
|
var s = "api/v1/h5swscmnapi";
|
||
|
s = this.P.rootpath + s + "?token=" + t,
|
||
|
console.log(s),
|
||
|
this.i = this.K(s),
|
||
|
console.log("setupWebSocket", this.i),
|
||
|
this.i.binaryType = "arraybuffer",
|
||
|
(this.i.Y = this).i.onmessage = this.q.bind(this),
|
||
|
this.i.onopen = function() {
|
||
|
console.log("wsSocket.onopen", this.Y),
|
||
|
this.Y.h = setInterval(this.Y.j.bind(this.Y), 1e3)
|
||
|
},
|
||
|
this.i.onclose = function() {
|
||
|
console.log("wsSocket.onclose", this.Y),
|
||
|
this.Y.tt(this.Y)
|
||
|
}
|
||
|
},
|
||
|
H5sPlayerHls.prototype.tt = function(t) {
|
||
|
console.log("H5sPlayerHls CleanupWebSocket", t),
|
||
|
clearInterval(t.h)
|
||
|
},
|
||
|
H5sPlayerHls.prototype.et = function() {
|
||
|
console.log("HLS video.ended", this.A.ended),
|
||
|
console.log("HLS video.currentTime", this.A.currentTime);
|
||
|
var t = this.A.currentTime,
|
||
|
s = t - this.T;
|
||
|
console.log("HLS diff", s),
|
||
|
0 === s && this.M++,
|
||
|
this.T = t,
|
||
|
3 < this.M && (null != this.i && (this.i.close(), this.i = null), this._(this.C), console.log("HLS reconnect"), this.A.src = "", this.T = 0, this.M = 0, this.A.src = this.P.protocol + "//" + this.P.host + this.P.rootpath + "hls/" + this.m + "/" + this.C + "/hls.m3u8", this.A.play())
|
||
|
},
|
||
|
H5sPlayerHls.prototype.connect = function() {
|
||
|
this._(this.C),
|
||
|
this.T = 0,
|
||
|
this.M = 0,
|
||
|
this.A.onended = function(t) {
|
||
|
console.log("The End")
|
||
|
},
|
||
|
this.A.onpause = function(t) {
|
||
|
console.log("Pause")
|
||
|
},
|
||
|
this.A.onplaying = function(t) {
|
||
|
console.log("Playing")
|
||
|
},
|
||
|
this.A.onseeking = function(t) {
|
||
|
console.log("seeking")
|
||
|
},
|
||
|
this.A.onvolumechange = function(t) {
|
||
|
console.log("volumechange")
|
||
|
},
|
||
|
this.A.src = this.P.protocol + "//" + this.P.host + this.P.rootpath + "hls/" + this.m + "/" + this.C + "/hls.m3u8",
|
||
|
this.A.play(),
|
||
|
this.R = setInterval(this.et.bind(this), 3e3)
|
||
|
},
|
||
|
H5sPlayerHls.prototype.disconnect = function() {
|
||
|
clearInterval(this.R),
|
||
|
this.T = 0,
|
||
|
this.M = 0,
|
||
|
null != this.i && (this.i.close(), this.i = null),
|
||
|
console.log("disconnect", this)
|
||
|
},
|
||
|
H5sPlayerRTC.prototype.G = function() {
|
||
|
console.log("Try Reconnect...", this.v),
|
||
|
!0 === this.v && (console.log("Reconnect..."), this._(this.C), this.v = !1),
|
||
|
console.log("Try Reconnect...", this.v)
|
||
|
},
|
||
|
H5sPlayerRTC.prototype.K = function(t) {
|
||
|
var s;
|
||
|
console.log("H5SWebSocketClient");
|
||
|
try {
|
||
|
"http:" == this.P.protocol && (s = "undefined" != typeof MozWebSocket ? new MozWebSocket("ws://" + this.P.host + t) : new WebSocket("ws://" + this.P.host + t)),
|
||
|
"https:" == this.P.protocol && (console.log(this.P.host), s = "undefined" != typeof MozWebSocket ? new MozWebSocket("wss://" + this.P.host + t) : new WebSocket("wss://" + this.P.host + t)),
|
||
|
console.log(this.P.host)
|
||
|
} catch(t) {
|
||
|
return void alert("error")
|
||
|
}
|
||
|
return s
|
||
|
},
|
||
|
H5sPlayerRTC.prototype.j = function() {
|
||
|
try {
|
||
|
var t = {
|
||
|
type: "keepalive"
|
||
|
};
|
||
|
this.i.send(JSON.stringify(t))
|
||
|
} catch(t) {
|
||
|
console.log(t)
|
||
|
}
|
||
|
},
|
||
|
H5sPlayerRTC.prototype.it = function(t) {
|
||
|
if (t.candidate) {
|
||
|
var s;
|
||
|
console.log("onIceCandidate currentice", t.candidate),
|
||
|
s = t.candidate,
|
||
|
console.log("onIceCandidate currentice", s, JSON.stringify(s));
|
||
|
var e = JSON.parse(JSON.stringify(s));
|
||
|
e.type = "remoteice",
|
||
|
console.log("onIceCandidate currentice new", e, JSON.stringify(e)),
|
||
|
this.i.send(JSON.stringify(e))
|
||
|
} else console.log("End of candidates.")
|
||
|
},
|
||
|
H5sPlayerRTC.prototype.ot = function(t) {
|
||
|
var s;
|
||
|
console.log("Remote track added:" + JSON.stringify(t)),
|
||
|
s = t.nt ? t.nt[0] : t.stream;
|
||
|
var e = this.I;
|
||
|
e.src = URL.createObjectURL(s),
|
||
|
e.play()
|
||
|
},
|
||
|
H5sPlayerRTC.prototype.ct = function() {
|
||
|
console.log("createPeerConnection config: " + JSON.stringify(this.g) + " option:" + JSON.stringify(this.J));
|
||
|
var s = new RTCPeerConnection(this.g, this.J),
|
||
|
e = this;
|
||
|
return s.onicecandidate = function(t) {
|
||
|
e.it.call(e, t)
|
||
|
},
|
||
|
void 0 !== s.ht ? s.ht = function(t) {
|
||
|
e.ot.call(e, t)
|
||
|
}: s.onaddstream = function(t) {
|
||
|
e.ot.call(e, t)
|
||
|
},
|
||
|
s.oniceconnectionstatechange = function(t) {
|
||
|
console.log("oniceconnectionstatechange state: " + s.iceConnectionState)
|
||
|
},
|
||
|
console.log("Created RTCPeerConnnection with config: " + JSON.stringify(this.g) + "option:" + JSON.stringify(this.J)),
|
||
|
s
|
||
|
},
|
||
|
H5sPlayerRTC.prototype.rt = function(t) {
|
||
|
console.log("ProcessRTCOffer", t);
|
||
|
try {
|
||
|
this.O = this.ct(),
|
||
|
this.L.length = 0;
|
||
|
var s = this;
|
||
|
this.O.setRemoteDescription(createRTCSessionDescription(t)),
|
||
|
this.O.createAnswer(this.N).then(function(t) {
|
||
|
console.log("Create answer:" + JSON.stringify(t)),
|
||
|
s.O.setLocalDescription(t,
|
||
|
function() {
|
||
|
console.log("ProcessRTCOffer createAnswer", t),
|
||
|
s.i.send(JSON.stringify(t))
|
||
|
},
|
||
|
function() {})
|
||
|
},
|
||
|
function(t) {
|
||
|
alert("Create awnser error:" + JSON.stringify(t))
|
||
|
})
|
||
|
} catch(t) {
|
||
|
this.disconnect(),
|
||
|
alert("connect error: " + t)
|
||
|
}
|
||
|
},
|
||
|
H5sPlayerRTC.prototype.lt = function(t) {
|
||
|
console.log("ProcessRemoteIce", t);
|
||
|
try {
|
||
|
var s = new RTCIceCandidate({
|
||
|
sdpMLineIndex: t.sdpMLineIndex,
|
||
|
candidate: t.candidate
|
||
|
});
|
||
|
console.log("ProcessRemoteIce", s),
|
||
|
console.log("Adding ICE candidate :" + JSON.stringify(s)),
|
||
|
this.O.addIceCandidate(s,
|
||
|
function() {
|
||
|
console.log("addIceCandidate OK")
|
||
|
},
|
||
|
function(t) {
|
||
|
console.log("addIceCandidate error:" + JSON.stringify(t))
|
||
|
})
|
||
|
} catch(t) {
|
||
|
alert("connect ProcessRemoteIce error: " + t)
|
||
|
}
|
||
|
},
|
||
|
H5sPlayerRTC.prototype.q = function(t) {
|
||
|
console.log("RTC received ", t.data);
|
||
|
var s = JSON.parse(t.data);
|
||
|
console.log("Get Message type ", s.type),
|
||
|
"offer" === s.type && (console.log("Process Message type ", s.type), this.rt(s)),
|
||
|
"remoteice" === s.type && (console.log("Process Message type ", s.type), this.lt(s))
|
||
|
},
|
||
|
H5sPlayerRTC.prototype._ = function(t) {
|
||
|
this.s.autoplay = !0;
|
||
|
var s = "api/v1/h5srtcapi";
|
||
|
s = this.P.rootpath + s + "?token=" + t,
|
||
|
console.log(s),
|
||
|
this.i = this.K(s),
|
||
|
console.log("setupWebSocket", this.i),
|
||
|
this.i.binaryType = "arraybuffer",
|
||
|
(this.i.Y = this).i.onmessage = this.q.bind(this),
|
||
|
this.i.onopen = function() {
|
||
|
console.log("wsSocket.onopen", this.Y);
|
||
|
var t = {
|
||
|
type: "open"
|
||
|
};
|
||
|
this.Y.i.send(JSON.stringify(t)),
|
||
|
this.Y.h = setInterval(this.Y.j.bind(this.Y), 1e3)
|
||
|
},
|
||
|
this.i.onclose = function() {
|
||
|
console.log("wsSocket.onclose", this.Y),
|
||
|
!0 === this.Y.k ? console.log("wsSocket.onclose disconnect") : this.Y.v = !0,
|
||
|
this.Y.tt(this.Y)
|
||
|
}
|
||
|
},
|
||
|
H5sPlayerRTC.prototype.tt = function(t) {
|
||
|
console.log("CleanupWebSocket", t),
|
||
|
clearInterval(t.h),
|
||
|
t.l = 0,
|
||
|
t.u = 0,
|
||
|
t.S = 0
|
||
|
},
|
||
|
H5sPlayerRTC.prototype.connect = function() {
|
||
|
this._(this.C),
|
||
|
this.st = setInterval(this.G.bind(this), 3e3)
|
||
|
},
|
||
|
H5sPlayerRTC.prototype.disconnect = function() {
|
||
|
console.log("disconnect", this),
|
||
|
this.k = !0,
|
||
|
clearInterval(this.st),
|
||
|
null != this.i && (this.i.close(), this.i = null),
|
||
|
console.log("disconnect", this)
|
||
|
},
|
||
|
H5sPlayerAudio.prototype.K = function(t) {
|
||
|
var s;
|
||
|
console.log("H5SWebSocketClient");
|
||
|
try {
|
||
|
"http:" == this.P.protocol && (s = "undefined" != typeof MozWebSocket ? new MozWebSocket("ws://" + this.P.host + t) : new WebSocket("ws://" + this.P.host + t)),
|
||
|
"https:" == this.P.protocol && (console.log(this.P.host), s = "undefined" != typeof MozWebSocket ? new MozWebSocket("wss://" + this.P.host + t) : new WebSocket("wss://" + this.P.host + t)),
|
||
|
console.log(this.P.host)
|
||
|
} catch(t) {
|
||
|
return void alert("error")
|
||
|
}
|
||
|
return s
|
||
|
},
|
||
|
H5sPlayerAudio.prototype.j = function() {
|
||
|
try {
|
||
|
this.i.send("keepalive")
|
||
|
} catch(t) {
|
||
|
console.log(t)
|
||
|
}
|
||
|
},
|
||
|
H5sPlayerAudio.prototype.q = function(t) {
|
||
|
for (var s = new Int16Array(t.data), e = s.length, i = this.D.createBuffer(1, e, 8e3), o = 0; o < 1; o++) for (var n = i.getChannelData(o), c = 0; c < e; c++) n[c] = s[c] / 16383.5;
|
||
|
var h = this.D.createBufferSource();
|
||
|
h.buffer = i,
|
||
|
h.connect(this.D.destination),
|
||
|
h.start()
|
||
|
},
|
||
|
H5sPlayerAudio.prototype.tt = function(t) {
|
||
|
console.log("CleanupWebSocket", t),
|
||
|
clearInterval(t.h)
|
||
|
},
|
||
|
H5sPlayerAudio.prototype._ = function(t) {
|
||
|
var s = "api/v1/h5saudapi";
|
||
|
s = this.P.rootpath + s + "?token=" + t + "&session=" + this.P.session,
|
||
|
console.log(s),
|
||
|
this.i = this.K(s),
|
||
|
console.log("setupWebSocket for audio", this.i),
|
||
|
this.i.binaryType = "arraybuffer",
|
||
|
(this.i.Y = this).i.onmessage = this.q.bind(this),
|
||
|
this.i.onopen = function() {
|
||
|
console.log("wsSocket.onopen", this.Y),
|
||
|
this.Y.h = setInterval(this.Y.j.bind(this.Y), 1e3)
|
||
|
},
|
||
|
this.i.onclose = function() {
|
||
|
console.log("wsSocket.onclose", this.Y),
|
||
|
this.Y.tt(this.Y)
|
||
|
}
|
||
|
},
|
||
|
H5sPlayerAudio.prototype.connect = function() {
|
||
|
this._(this.C)
|
||
|
},
|
||
|
H5sPlayerAudio.prototype.disconnect = function() {
|
||
|
console.log("disconnect", this),
|
||
|
null != this.i && (this.i.close(), this.i = null),
|
||
|
console.log("disconnect", this)
|
||
|
},
|
||
|
H5sPlayerAudBack.prototype.K = function(t) {
|
||
|
var s;
|
||
|
console.log("H5SWebSocketClient");
|
||
|
try {
|
||
|
"http:" == this.P.protocol && (s = "undefined" != typeof MozWebSocket ? new MozWebSocket("ws://" + this.P.host + t) : new WebSocket("ws://" + this.P.host + t)),
|
||
|
"https:" == this.P.protocol && (console.log(this.P.host), s = "undefined" != typeof MozWebSocket ? new MozWebSocket("wss://" + this.P.host + t) : new WebSocket("wss://" + this.P.host + t)),
|
||
|
console.log(this.P.host)
|
||
|
} catch(t) {
|
||
|
return void alert("error")
|
||
|
}
|
||
|
return s
|
||
|
},
|
||
|
H5sPlayerAudBack.prototype.j = function() {
|
||
|
try {
|
||
|
this.i.send("keepalive")
|
||
|
} catch(t) {
|
||
|
console.log(t)
|
||
|
}
|
||
|
},
|
||
|
H5sPlayerAudBack.prototype.q = function(t) {},
|
||
|
H5sPlayerAudBack.prototype.tt = function(t) {
|
||
|
console.log("CleanupWebSocket", t),
|
||
|
clearInterval(t.h)
|
||
|
},
|
||
|
H5sPlayerAudBack.prototype.at = function(t) {
|
||
|
console.log("wsSocket.onopen", this);
|
||
|
try {
|
||
|
navigator.getUserMedia({
|
||
|
s: !1,
|
||
|
ut: !0
|
||
|
},
|
||
|
this.dt.bind(this))
|
||
|
} catch(t) {
|
||
|
return void alert("Audio intecomm error", t)
|
||
|
}
|
||
|
},
|
||
|
H5sPlayerAudBack.prototype._ = function(t) {
|
||
|
var s = "api/v1/h5saudbackapi";
|
||
|
s = this.P.rootpath + s + "?token=" + t + "&session=" + this.P.session,
|
||
|
console.log(s),
|
||
|
this.i = this.K(s),
|
||
|
console.log("setupWebSocket for audio back", this.i),
|
||
|
this.i.binaryType = "arraybuffer",
|
||
|
(this.i.Y = this).i.onmessage = this.q.bind(this),
|
||
|
this.i.onopen = this.at.bind(this),
|
||
|
this.i.onclose = function() {
|
||
|
console.log("wsSocket.onclose", this.Y),
|
||
|
this.Y.tt(this.Y)
|
||
|
}
|
||
|
},
|
||
|
H5sPlayerAudBack.prototype.ft = function(t) {
|
||
|
var s = float32ToInt16(t.inputBuffer.getChannelData(0));
|
||
|
this.i.send(s)
|
||
|
},
|
||
|
H5sPlayerAudBack.prototype.dt = function(t) {
|
||
|
try {
|
||
|
var s = this.D.createMediaStreamSource(t);
|
||
|
console.log("sampleRate", this.D.sampleRate);
|
||
|
var e = this.D.createScriptProcessor(256, 1, 1);
|
||
|
s.connect(e),
|
||
|
e.connect(this.D.destination),
|
||
|
e.onaudioprocess = this.ft.bind(this)
|
||
|
} catch(t) {
|
||
|
return void alert("Audio intecomm error", t)
|
||
|
}
|
||
|
},
|
||
|
H5sPlayerAudBack.prototype.connect = function() {
|
||
|
this._(this.C)
|
||
|
},
|
||
|
H5sPlayerAudBack.prototype.disconnect = function() {
|
||
|
console.log("disconnect", this),
|
||
|
null != this.i && (this.i.close(), this.i = null),
|
||
|
console.log("disconnect", this)
|
||
|
};
|