trtc-sdk-v5
Version:
Tencent Cloud RTC SDK for Web
3 lines • 59.5 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).LEBPlayer=t()}(this,function(){"use strict";function e(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function t(e,t,r,n,i,o,a){try{var c=e[o](a),s=c.value}catch(e){return void r(e)}c.done?t(s):Promise.resolve(s).then(n,i)}function r(e){return function(){var r=this,n=arguments;return new Promise(function(i,o){var a=e.apply(r,n);function c(e){t(a,i,o,c,s,"next",e)}function s(e){t(a,i,o,c,s,"throw",e)}c(void 0)})}}function n(e,t,r){return t=s(t),function(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,l()?Reflect.construct(t,r||[],s(e).constructor):t.apply(e,r))}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,y(n.key),n)}}function a(e,t,r){return t&&o(e.prototype,t),r&&o(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function c(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=g(e))||t){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,c=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){c=!0,o=e},f:function(){try{a||null==r.return||r.return()}finally{if(c)throw o}}}}function s(e){return s=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},s(e)}function u(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&h(e,t)}function l(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(l=function(){return!!e})()}function d(){
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",i=r.toStringTag||"@@toStringTag";function o(r,n,i,o){var s=n&&n.prototype instanceof c?n:c,u=Object.create(s.prototype);return f(u,"_invoke",function(r,n,i){var o,c,s,u=0,l=i||[],d=!1,f={p:0,n:0,v:e,a:h,f:h.bind(e,4),d:function(t,r){return o=t,c=0,s=e,f.n=r,a}};function h(r,n){for(c=r,s=n,t=0;!d&&u&&!i&&t<l.length;t++){var i,o=l[t],h=f.p,p=o[2];r>3?(i=p===n)&&(s=o[(c=o[4])?5:(c=3,3)],o[4]=o[5]=e):o[0]<=h&&((i=r<2&&h<o[1])?(c=0,f.v=n,f.n=o[1]):h<p&&(i=r<3||o[0]>n||n>p)&&(o[4]=r,o[5]=n,f.n=p,c=0))}if(i||r>1)return a;throw d=!0,n}return function(i,l,p){if(u>1)throw TypeError("Generator is already running");for(d&&1===l&&h(l,p),c=l,s=p;(t=c<2?e:s)||!d;){o||(c?c<3?(c>1&&(f.n=-1),h(c,s)):f.n=s:f.v=s);try{if(u=2,o){if(c||(i="next"),t=o[i]){if(!(t=t.call(o,s)))throw TypeError("iterator result is not an object");if(!t.done)return t;s=t.value,c<2&&(c=0)}else 1===c&&(t=o.return)&&t.call(o),c<2&&(s=TypeError("The iterator does not provide a '"+i+"' method"),c=1);o=e}else if((t=(d=f.n<0)?s:r.call(n,f))!==a)break}catch(t){o=e,c=1,s=t}finally{u=1}}return{value:t,done:d}}}(r,i,o),!0),u}var a={};function c(){}function s(){}function u(){}t=Object.getPrototypeOf;var l=[][n]?t(t([][n]())):(f(t={},n,function(){return this}),t),h=u.prototype=c.prototype=Object.create(l);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,u):(e.__proto__=u,f(e,i,"GeneratorFunction")),e.prototype=Object.create(h),e}return s.prototype=u,f(h,"constructor",u),f(u,"constructor",s),s.displayName="GeneratorFunction",f(u,i,"GeneratorFunction"),f(h),f(h,i,"Generator"),f(h,n,function(){return this}),f(h,"toString",function(){return"[object Generator]"}),(d=function(){return{w:o,m:p}})()}function f(e,t,r,n){var i=Object.defineProperty;try{i({},"",{})}catch(e){i=0}f=function(e,t,r,n){function o(t,r){f(e,t,function(e){return this._invoke(t,r,e)})}t?i?i(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(o("next",0),o("throw",1),o("return",2))},f(e,t,r,n)}function h(e,t){return h=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},h(e,t)}function p(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,i,o,a,c=[],s=!0,u=!1;try{if(o=(r=r.call(e)).next,0===t);else for(;!(s=(n=o.call(r)).done)&&(c.push(n.value),c.length!==t);s=!0);}catch(e){u=!0,i=e}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(u)throw i}}return c}}(e,t)||g(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function v(t){return function(t){if(Array.isArray(t))return e(t)}(t)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||g(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function y(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t);if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e,"string");return"symbol"==typeof t?t:t+""}function m(e){return m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},m(e)}function g(t,r){if(t){if("string"==typeof t)return e(t,r);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?e(t,r):void 0}}function S(e){var t="function"==typeof Map?new Map:void 0;return S=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return function(e,t,r){if(l())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,t);var i=new(e.bind.apply(e,n));return r&&h(i,r.prototype),i}(e,arguments,s(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),h(r,e)},S(e)}var w,b,P=Object.create,k=Object.defineProperty,E=Object.defineProperties,_=Object.getOwnPropertyDescriptor,R=Object.getOwnPropertyDescriptors,T=Object.getOwnPropertyNames,I=Object.getOwnPropertySymbols,C=Object.getPrototypeOf,D=Object.prototype.hasOwnProperty,A=Object.prototype.propertyIsEnumerable,O=function(e,t,r){return t in e?k(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r},L=function(e,t){for(var r in t||(t={}))D.call(t,r)&&O(e,r,t[r]);if(I){var n,i=c(I(t));try{for(i.s();!(n=i.n()).done;){r=n.value;A.call(t,r)&&O(e,r,t[r])}}catch(e){i.e(e)}finally{i.f()}}return e},j=function(e,t){return E(e,R(t))},M=function(e,t,r,n){for(var i,o=_(t,r),a=e.length-1;a>=0;a--)(i=e[a])&&(o=i(t,r,o)||o);return o&&k(t,r,o),o},F=function(e,t,r){return O(e,"symbol"!==m(t)?t+"":t,r)},x=(w={"../node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.js":function(e,t){var r=Object.prototype.hasOwnProperty,n="~";function i(){}function o(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function a(e,t,r,i,a){if("function"!=typeof r)throw new TypeError("The listener must be a function");var c=new o(r,i||e,a),s=n?n+t:t;return e._events[s]?e._events[s].fn?e._events[s]=[e._events[s],c]:e._events[s].push(c):(e._events[s]=c,e._eventsCount++),e}function c(e,t){0===--e._eventsCount?e._events=new i:delete e._events[t]}function s(){this._events=new i,this._eventsCount=0}Object.create&&(i.prototype=Object.create(null),(new i).__proto__||(n=!1)),s.prototype.eventNames=function(){var e,t,i=[];if(0===this._eventsCount)return i;for(t in e=this._events)r.call(e,t)&&i.push(n?t.slice(1):t);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},s.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var i=0,o=r.length,a=new Array(o);i<o;i++)a[i]=r[i].fn;return a},s.prototype.listenerCount=function(e){var t=n?n+e:e,r=this._events[t];return r?r.fn?1:r.length:0},s.prototype.emit=function(e,t,r,i,o,a){var c=n?n+e:e;if(!this._events[c])return!1;var s,u,l=this._events[c],d=arguments.length;if(l.fn){switch(l.once&&this.removeListener(e,l.fn,void 0,!0),d){case 1:return l.fn.call(l.context),!0;case 2:return l.fn.call(l.context,t),!0;case 3:return l.fn.call(l.context,t,r),!0;case 4:return l.fn.call(l.context,t,r,i),!0;case 5:return l.fn.call(l.context,t,r,i,o),!0;case 6:return l.fn.call(l.context,t,r,i,o,a),!0}for(u=1,s=new Array(d-1);u<d;u++)s[u-1]=arguments[u];l.fn.apply(l.context,s)}else{var f,h=l.length;for(u=0;u<h;u++)switch(l[u].once&&this.removeListener(e,l[u].fn,void 0,!0),d){case 1:l[u].fn.call(l[u].context);break;case 2:l[u].fn.call(l[u].context,t);break;case 3:l[u].fn.call(l[u].context,t,r);break;case 4:l[u].fn.call(l[u].context,t,r,i);break;default:if(!s)for(f=1,s=new Array(d-1);f<d;f++)s[f-1]=arguments[f];l[u].fn.apply(l[u].context,s)}}return!0},s.prototype.on=function(e,t,r){return a(this,e,t,r,!1)},s.prototype.once=function(e,t,r){return a(this,e,t,r,!0)},s.prototype.removeListener=function(e,t,r,i){var o=n?n+e:e;if(!this._events[o])return this;if(!t)return c(this,o),this;var a=this._events[o];if(a.fn)a.fn!==t||i&&!a.once||r&&a.context!==r||c(this,o);else{for(var s=0,u=[],l=a.length;s<l;s++)(a[s].fn!==t||i&&!a[s].once||r&&a[s].context!==r)&&u.push(a[s]);u.length?this._events[o]=1===u.length?u[0]:u:c(this,o)}return this},s.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&c(this,t)):(this._events=new i,this._eventsCount=0),this},s.prototype.off=s.prototype.removeListener,s.prototype.addListener=s.prototype.on,s.prefixed=n,s.EventEmitter=s,void 0!==t&&(t.exports=s)}},function(){return b||(0,w[T(w)[0]])((b={exports:{}}).exports,b),b.exports}),N={name:"option",required:!0,properties:{view:{type:["string",HTMLElement],required:!0},url:{type:"string",required:!0},muted:{type:"boolean",required:!1},volume:{type:"number",required:!1},fillMode:{type:"string",required:!1,values:["contain","cover","fill"]},loggerConfig:{type:"object",required:!0,properties:{sdkAppId:{type:"number",required:!0},userId:{type:"string",required:!0}}},signalDomain:{type:["string","object"],required:!1}}},U=function(e){var t=e.split("\r\n"),r=[];t.forEach(function(e){var t=e.toLowerCase();t.includes("a=rtpmap")&&t.includes("h264")&&r.push(e)});var n=r.map(function(e){var t=/a=rtpmap:(\d+)\s/.exec(e);return t&&t.length>1?t[1]:null}).filter(function(e){return null!==e}),i=[];return t.forEach(function(e){var t=e;if(e.includes("a=fmtp:111")&&(t="".concat(e,";stereo=1")),e.includes("a=fmtp")){var r=/a=fmtp:(\d+)\s/.exec(e);r&&r.length>1&&n.includes(r[1])&&(t="".concat(e,";sps-pps-idr-in-keyframe=1"))}i.push(t)}),function(e){if(!navigator.userAgent.includes("Firefox"))return e;var t=e.split("\r\n"),r=[],n=[];t.forEach(function(e){var t=e.toLowerCase();t.includes("a=rtpmap")&&t.includes("h264")&&r.push(e)}),r.length>1&&n.push.apply(n,v(r.slice(1)));var i=n.map(function(e){var t=/a=rtpmap:(\d+)\s/.exec(e);return t&&t.length>1?t[1]:null}).filter(function(e){return null!==e}),o=[];return t.forEach(function(e){var t=e;if(e.includes("a=setup")&&(t="a=setup:passive"),(e.includes("m=audio")||e.includes("m=video"))&&(t=e.split(" ").filter(function(e,t){return t<3||!i.includes(e)}).join(" ")),e.includes("a=fmtp")||e.includes("a=rtcp-fb")||e.includes("a=rtpmap")){var r=/a=(?:fmtp|rtcp-fb|rtpmap):(\d+)\s/.exec(e);if(r&&r.length>1&&i.includes(r[1]))return}o.push(t)}),o.join("\r\n")}(i.join("\r\n"))},W=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:21,t="",r=crypto.getRandomValues(new Uint8Array(e|=0));e--;)t+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&r[e]];return t},B=function(e){return"function"==typeof e};var V=function(e){var t=e.retryFunction,n=e.settings,i=e.onError,o=e.onRetrying,a=e.onRetryFailed,c=e.onRetrySuccess,s=e.context;return function(){for(var e=this,u=arguments.length,l=new Array(u),f=0;f<u;f++)l[f]=arguments[f];var h=n.retries,p=void 0===h?5:h,v=n.timeout,y=void 0===v?1e3:v,m=0,g=-1,S=0,w=function(){var n=r(d().m(function r(n,u){var f,h,v,b,P;return d().w(function(r){for(;;)switch(r.p=r.n){case 0:return f=s||e,r.p=1,r.n=2,t.apply(f,l);case 2:h=r.v,m>0&&c&&c.call(e,m),m=0,n(h),r.n=4;break;case 3:r.p=3,P=r.v,v=function(){clearTimeout(g),m=0,S=2,u(P)},b=function(){2!==S&&m<(B(p)?p():p)?(m++,S=1,B(o)&&o.call(e,m,v),g=window.setTimeout(function(){g=-1,w(n,u)},B(y)?y(m):y)):(v(),B(a)&&a.call(e,P))},B(i)?i.call(e,{error:P,retry:b,reject:u,retryFuncArgs:l,retriedCount:m}):b();case 4:return r.a(2)}},r,null,[[1,3]])}));return function(e,t){return n.apply(this,arguments)}}();return new Promise(w)}},H=new WeakMap;var q=function(){return a(function e(t,r){i(this,e),this.core=r,F(this,"peerConnection"),F(this,"audioTransceiver",null),F(this,"videoTransceiver",null),F(this,"timerId",null),F(this,"callback",null),F(this,"previousRawStats",null),F(this,"_prevReportTime",0),F(this,"_prevDecoderImplementation",""),F(this,"_decodeMap",new Map),this.peerConnection=t,this.findTransceivers()},[{key:"statInterval",get:function(){return 0===this._prevReportTime?2:(Date.now()-this._prevReportTime)/1e3}},{key:"findTransceivers",value:function(){var e,t=c(this.peerConnection.getTransceivers());try{for(t.s();!(e=t.n()).done;){var r=e.value;if(r.receiver&&r.receiver.track){var n=r.receiver.track;"audio"===n.kind?this.audioTransceiver=r:"video"===n.kind&&(this.videoTransceiver=r)}}}catch(e){t.e(e)}finally{t.f()}}},{key:"start",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2e3;this.stop(),this.callback=e,this.collectStats(),this.timerId=window.setInterval(function(){t.collectStats()},r)}},{key:"stop",value:function(){null!==this.timerId&&(clearInterval(this.timerId),this.timerId=null),this.callback=null,this.previousRawStats=null,this._prevReportTime=0}},{key:"collectStats",value:(e=r(d().m(function e(){var t,r,n,i,o,a,c,s;return d().w(function(e){for(;;)switch(e.p=e.n){case 0:if(this.callback){e.n=1;break}return e.a(2);case 1:return e.p=1,e.n=2,this.peerConnection.getStats();case 2:t=e.v,r=new Set(["inbound-rtp","track","candidate-pair","media-source","codec"]),n=[],t.forEach(function(e){return r.has(e.type)&&n.push(e)}),i=Date.now(),o=this.parseAudioStats(n),a=this.parseVideoStats(n),c=this.parseNetworkStats(n),this._prevReportTime=i,this.callback({audio:o,video:a,network:c}),e.n=4;break;case 3:e.p=3,s=e.v,this.core.log.error("Failed to collect WebRTC stats:",s);case 4:return e.a(2)}},e,this,[[1,3]])})),function(){return e.apply(this,arguments)})},{key:"getDifferenceValue",value:function(e,t){if(this.core.utils.isUndefined(e))return t;var r=(t||0)-e;return r<0?0:r}},{key:"parseAudioStats",value:function(e){var t,r,n,i,o,a={bitrate:0,volume:0,packetLossRate:0,jitterBufferDelay:0,bytesReceived:0,packetsReceived:0,packetsLost:0},s=c(e);try{for(s.s();!(o=s.n()).done;){var u=o.value;if("inbound-rtp"===u.type&&("audio"===u.mediaType||"audio"===u.kind)){if(a.bytesReceived=u.bytesReceived||0,a.packetsReceived=u.packetsReceived||0,a.packetsLost=u.packetsLost||0,this.previousRawStats&&this.previousRawStats.audio){var l=this.getDifferenceValue(this.previousRawStats.audio.bytesReceived,a.bytesReceived);a.bitrate=Math.round(8*l/this.statInterval/1e3)}var d=this.getDifferenceValue(null==(t=this.previousRawStats)?void 0:t.audio.packetsLost,a.packetsLost),f=this.getDifferenceValue(null==(r=this.previousRawStats)?void 0:r.audio.packetsReceived,a.packetsReceived)+d;if(f>0&&(a.packetLossRate=Math.round(d/f*100)),this.core.utils.isUndefined(u.audioLevel)||(a.volume=u.audioLevel||0),u.jitterBufferDelay&&u.jitterBufferEmittedCount){var h=u.jitterBufferEmittedCount,p=u.jitterBufferDelay;(null==(n=this.previousRawStats)?void 0:n.audio)&&(h=this.getDifferenceValue(this.previousRawStats.audio.jitterBufferEmittedCount,u.jitterBufferEmittedCount),p=this.getDifferenceValue(this.previousRawStats.audio.jitterBufferDelay,u.jitterBufferDelay)),h>0&&(a.jitterBufferDelay=Math.floor(p/h*1e3)),this.previousRawStats||this.initPreviousRawStats(),this.previousRawStats.audio.jitterBufferDelay=u.jitterBufferDelay,this.previousRawStats.audio.jitterBufferEmittedCount=u.jitterBufferEmittedCount}this.previousRawStats||this.initPreviousRawStats(),this.previousRawStats.audio.bytesReceived=a.bytesReceived,this.previousRawStats.audio.packetsReceived=a.packetsReceived,this.previousRawStats.audio.packetsLost=a.packetsLost}!this.core.utils.isUndefined(u.audioLevel)&&(null==(i=this.audioTransceiver)?void 0:i.receiver.track)&&u.trackIdentifier===this.audioTransceiver.receiver.track.id&&(a.volume=u.audioLevel||0)}}catch(e){s.e(e)}finally{s.f()}return a}},{key:"parseVideoStats",value:function(e){var t,r,n,i,o,a,s={bitrate:0,frameRate:0,width:0,height:0,packetLossRate:0,jitterBufferDelay:0,bytesReceived:0,packetsReceived:0,packetsLost:0,framesDecoded:0},u=c(e);try{for(u.s();!(a=u.n()).done;){var l=a.value;if("codec"===l.type&&this._decodeMap.set(l.id,l),"inbound-rtp"===l.type&&("video"===l.mediaType||"video"===l.kind)){if(s.bytesReceived=l.bytesReceived||0,s.packetsReceived=l.packetsReceived||0,s.packetsLost=l.packetsLost||0,s.framesDecoded=l.framesDecoded||0,this.core.utils.isUndefined(l.framesPerSecond)||(s.frameRate=Math.round(l.framesPerSecond)),l.decoderImplementation&&this._prevDecoderImplementation!==l.decoderImplementation){var d=this._decodeMap.get(l.codecId),f=(null==(t=null==d?void 0:d.mimeType)?void 0:t.split("/")[1])||"unknown",h=l.powerEfficientDecoder;this.core.log.info("decoderImplementation change to ".concat(l.decoderImplementation,"(").concat(f,") HWDecoder: ").concat(h)),this._prevDecoderImplementation=l.decoderImplementation}if(this.previousRawStats&&this.previousRawStats.video){var p=this.getDifferenceValue(this.previousRawStats.video.bytesReceived,s.bytesReceived);s.bitrate=Math.round(8*p/this.statInterval/1e3)}var v=this.getDifferenceValue(null==(r=this.previousRawStats)?void 0:r.video.packetsLost,s.packetsLost),y=this.getDifferenceValue(null==(n=this.previousRawStats)?void 0:n.video.packetsReceived,s.packetsReceived)+v;if(y>0&&(s.packetLossRate=Math.round(v/y*100)),l.jitterBufferDelay&&l.jitterBufferEmittedCount){var m=l.jitterBufferEmittedCount,g=l.jitterBufferDelay;(null==(i=this.previousRawStats)?void 0:i.video)&&(m=this.getDifferenceValue(this.previousRawStats.video.jitterBufferEmittedCount,l.jitterBufferEmittedCount),g=this.getDifferenceValue(this.previousRawStats.video.jitterBufferDelay,l.jitterBufferDelay)),m>0&&(s.jitterBufferDelay=Math.floor(g/m*1e3)),this.previousRawStats||this.initPreviousRawStats(),this.previousRawStats.video.jitterBufferDelay=l.jitterBufferDelay,this.previousRawStats.video.jitterBufferEmittedCount=l.jitterBufferEmittedCount}this.previousRawStats||this.initPreviousRawStats(),this.previousRawStats.video.bytesReceived=s.bytesReceived,this.previousRawStats.video.packetsReceived=s.packetsReceived,this.previousRawStats.video.packetsLost=s.packetsLost}!this.core.utils.isUndefined(l.frameWidth)&&(null==(o=this.videoTransceiver)?void 0:o.receiver.track)&&l.trackIdentifier===this.videoTransceiver.receiver.track.id&&(s.width=l.frameWidth,s.height=l.frameHeight)}}catch(e){u.e(e)}finally{u.f()}return s}},{key:"parseNetworkStats",value:function(e){var t,r={rtt:0},n=c(e);try{for(n.s();!(t=n.n()).done;){var i=t.value;if("candidate-pair"===i.type)if((i.selected||"succeeded"===i.state)&&this.core.utils.isNumber(i.currentRoundTripTime)){r.rtt=Math.floor(1e3*i.currentRoundTripTime);break}}}catch(e){n.e(e)}finally{n.f()}return r}},{key:"initPreviousRawStats",value:function(){this.previousRawStats={timestamp:Date.now(),audio:{bytesReceived:0,packetsReceived:0,packetsLost:0},video:{bytesReceived:0,packetsReceived:0,packetsLost:0}}}}]);var e}(),G=function(e,t,r){return r=null!=e?P(C(e)):{},function(e,t,r,n){if(t&&"object"===m(t)||"function"==typeof t){var i,o=c(T(t));try{var a=function(){var o=i.value;D.call(e,o)||o===r||k(e,o,{get:function(){return t[o]},enumerable:!(n=_(t,o))||n.enumerable})};for(o.s();!(i=o.n()).done;)a()}catch(e){o.e(e)}finally{o.f()}}return e}(k(r,"default",{value:e,enumerable:!0}),e)}(x()),Y=Symbol("instance"),J=Symbol("cacheResult"),K=function(){return a(function e(t,r,n){i(this,e),this.oldState=t,this.newState=r,this.action=n,this.aborted=!1},[{key:"abort",value:function(e){this.aborted=!0,te.call(e,this.oldState,new Error("action '".concat(this.action,"' aborted")))}},{key:"toString",value:function(){return"".concat(this.action,"ing")}}])}(),z=function(e){function t(e,r,o){var a;return i(this,t),(a=n(this,t,[r])).state=e,a.message=r,a.cause=o,a}return u(t,e),a(t)}(S(Error));var Z=new Map;function Q(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return function(n,i,o){var a=r.action||i;if(!r.context){var c=Z.get(n)||[];Z.has(n)||Z.set(n,c),c.push({from:e,to:t,action:a})}var s=o.value;o.value=function(){for(var n,i=this,o=this,c=arguments.length,u=new Array(c),l=0;l<c;l++)u[l]=arguments[l];r.context&&(o=re.get("function"==typeof r.context?(n=r.context).call.apply(n,[this].concat(u)):r.context));if(o.state===t)return r.sync?o[J]:Promise.resolve(o[J]);o.state instanceof K&&o.state.action==r.abortAction&&o.state.abort(o);var d=null;Array.isArray(e)?0==e.length?o.state instanceof K&&o.state.abort(o):"string"==typeof o.state&&e.includes(o.state)||(d=new z(o._state,"".concat(o.name," ").concat(a," to ").concat(t," failed: current state ").concat(o._state," not from ").concat(e.join("|")))):e!==o.state&&(d=new z(o._state,"".concat(o.name," ").concat(a," to ").concat(t," failed: current state ").concat(o._state," not from ").concat(e)));var f=function(e){if(r.fail&&r.fail.call(i,e),r.sync){if(r.ignoreError)return e;throw e}return r.ignoreError?Promise.resolve(e):Promise.reject(e)};if(d)return f(d);var h=o.state,p=new K(h,t,a);te.call(o,p);var v,y=function(e){var n;return o[J]=e,p.aborted||(te.call(o,t),null===(n=r.success)||void 0===n||n.call(i,o[J])),e},g=function(e){return te.call(o,h,e),f(e)};try{var S=s.apply(this,u);return"object"===m(v=S)&&v&&"then"in v?S.then(y).catch(g):r.sync?y(S):Promise.resolve(y(S))}catch(r){return g(new z(o._state,"".concat(o.name," ").concat(a," from ").concat(e," to ").concat(t," failed: ").concat(r),r instanceof Error?r:new Error(String(r))))}}}}var X,$,ee=(X="undefined"!=typeof window&&window.__AFSM__,$="undefined"!=typeof importScripts,X?function(e,t){window.dispatchEvent(new CustomEvent(e,{detail:t}))}:$?function(e,t){postMessage({type:e,payload:t})}:function(){});function te(e,t){var r=this._state;this._state=e;var n=e.toString();e&&this.emit(n,r),this.emit(re.STATECHANGED,e,r,t),this.updateDevTools({value:e,old:r,err:t instanceof Error?t.message:String(t)})}var re=function(e){function t(e,r,o){var a;i(this,t),(a=n(this,t)).name=e,a.groupName=r,a._state=t.INIT,e||(e=Date.now().toString(36)),o?Object.setPrototypeOf(a,o):o=Object.getPrototypeOf(a),r||(a.groupName=a.constructor.name);var c=o[Y];return c?a.name=c.name+"-"+c.count++:o[Y]={name:a.name,count:0},a.updateDevTools({diagram:a.stateDiagram}),a}return u(t,e),a(t,[{key:"stateDiagram",get:function(){var e=Object.getPrototypeOf(this),t=Z.get(e)||[],r=new Set,n=[],i=[],o=new Set,a=Object.getPrototypeOf(e);Z.has(a)&&(a.stateDiagram.forEach(function(e){return r.add(e)}),a.allStates.forEach(function(e){return o.add(e)})),t.forEach(function(e){var t=e.from,r=e.to,o=e.action;"string"==typeof t?n.push({from:t,to:r,action:o}):t.length?t.forEach(function(e){n.push({from:e,to:r,action:o})}):i.push({to:r,action:o})}),n.forEach(function(e){var t=e.from,n=e.to,i=e.action;o.add(t),o.add(n),o.add(i+"ing"),r.add("".concat(t," --\x3e ").concat(i,"ing : ").concat(i)),r.add("".concat(i,"ing --\x3e ").concat(n," : ").concat(i," 🟢")),r.add("".concat(i,"ing --\x3e ").concat(t," : ").concat(i," 🔴"))}),i.forEach(function(e){var t=e.to,n=e.action;r.add("".concat(n,"ing --\x3e ").concat(t," : ").concat(n," 🟢")),o.forEach(function(e){e!==t&&r.add("".concat(e," --\x3e ").concat(n,"ing : ").concat(n))})});var c=v(r);return Object.defineProperties(e,{stateDiagram:{value:c},allStates:{value:o}}),c}},{key:"updateDevTools",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};ee(t.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},e))}},{key:"state",get:function(){return this._state},set:function(e){te.call(this,e)}}],[{key:"get",value:function(e){var r;return"string"==typeof e?(r=t.instances.get(e))||t.instances.set(e,r=new t(e,void 0,Object.create(t.prototype))):(r=t.instances2.get(e))||t.instances2.set(e,r=new t(e.constructor.name,void 0,Object.create(t.prototype))),r}},{key:"getState",value:function(e){var r;return null===(r=t.get(e))||void 0===r?void 0:r.state}}])}(G.default);re.STATECHANGED="stateChanged",re.UPDATEAFSM="updateAFSM",re.INIT="[*]",re.ON="on",re.OFF="off",re.instances=new Map,re.instances2=new WeakMap;var ne=function(e){function t(e,r){var o;return i(this,t),(o=n(this,t)).core=e,F(o,"audioPlayer"),F(o,"videoPlayer"),F(o,"callback"),F(o,"avPlayerStateSyncManager"),F(o,"_log"),F(o,"_videoPlayerLog"),F(o,"_audioPlayerLog"),F(o,"lastPausedReason"),F(o,"muted",!1),o._log=r,o._videoPlayerLog=o._log.createChild({id:"vp"}),o._audioPlayerLog=o._log.createChild({id:"ap"}),o.videoPlayer=new e.VideoPlayer({id:"vp",log:o._videoPlayerLog,track:null,muted:!1,container:null,enableLogTrackState:!0}),o.audioPlayer=new e.RemoteAudioPlayer({id:"ap",log:o._audioPlayerLog,track:null,muted:!1,container:null,enableVolumeControlInIOS:!0,enableLogTrackState:!0}),o.audioPlayer.on(e.PlayerEvent.AUTOPLAY_FAILED,function(e){return o.handleAutoPlayFailed(o.audioPlayer,e)}),o.videoPlayer.on(e.PlayerEvent.LOAD_START,function(){return o.handleLoadStart("video")}),o.audioPlayer.on(e.PlayerEvent.LOAD_START,function(){return o.handleLoadStart("audio")}),o.videoPlayer.on(e.PlayerEvent.PLAYER_STATE_CHANGED,o.handlePlayerStateChanged,o),o.audioPlayer.on(e.PlayerEvent.PLAYER_STATE_CHANGED,o.handlePlayerStateChanged,o),o.videoPlayer.on(e.PlayerEvent.ENTER_PICTURE_IN_PICTURE,o.handleEnterPictureInPicture,o),o.videoPlayer.on(e.PlayerEvent.LEAVE_PICTURE_IN_PICTURE,o.handleLeavePictureInPicture,o),o.videoPlayer.on(e.PlayerEvent.ENTER_FULL_SCREEN,o.handleEnterFullScreen,o),o.videoPlayer.on(e.PlayerEvent.LEAVE_FULL_SCREEN,o.handleLeaveFullScreen,o),o.avPlayerStateSyncManager=new e.AVPlayerStateSyncManager({log:o._log,audioPlayer:o.audioPlayer,videoPlayer:o.videoPlayer}),o}return u(t,e),a(t,[{key:"isPlaying",get:function(){return this.videoPlayer.isPlaying&&this.audioPlayer.isPlaying}},{key:"isPaused",get:function(){return this.videoPlayer.isPaused&&this.audioPlayer.isPaused}},{key:"isStopped",get:function(){return this.videoPlayer.isStopped&&this.audioPlayer.isStopped}},{key:"setCallback",value:function(e){this.callback=e}},{key:"updateLogConfig",value:function(e){this._audioPlayerLog.setSdkAppId(e.sdkAppId),this._audioPlayerLog.setUserId(e.userId),this._videoPlayerLog.setSdkAppId(e.sdkAppId),this._videoPlayerLog.setUserId(e.userId)}},{key:"handleLoadStart",value:function(e){this.onLoadStart()}},{key:"handlePlayerStateChanged",value:function(e){"PLAYING"===e.state&&this.isPlaying&&this.onPlaying(),"PAUSED"===e.state&&this.isPaused&&this.onPaused(e.reason),"STOPPED"===e.state&&this.isStopped&&this.onStopped()}},{key:"handleEnterPictureInPicture",value:(h=r(d().m(function e(){var t,r;return d().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.videoPlayer.enterPIPPromise;case 1:null==(r=null==(t=this.callback)?void 0:t.onPictureInPictureStateChanged)||r.call(t,{isPictureInPicture:!0,pictureInPictureWindow:this.videoPlayer.pipWindow});case 2:return e.a(2)}},e,this)})),function(){return h.apply(this,arguments)})},{key:"handleLeavePictureInPicture",value:function(){var e,t;null==(t=null==(e=this.callback)?void 0:e.onPictureInPictureStateChanged)||t.call(e,{isPictureInPicture:!1})}},{key:"handleEnterFullScreen",value:function(){var e,t;null==(t=null==(e=this.callback)?void 0:e.onFullScreenStateChanged)||t.call(e,{isFullScreen:!0})}},{key:"handleLeaveFullScreen",value:function(){var e,t;null==(t=null==(e=this.callback)?void 0:e.onFullScreenStateChanged)||t.call(e,{isFullScreen:!1})}},{key:"onLoadStart",value:function(){}},{key:"onPlaying",value:function(){}},{key:"onPaused",value:function(e){this.lastPausedReason=e}},{key:"onStopped",value:function(){}},{key:"setVideoContainer",value:function(e){if(this.core.utils.isString(e)){var t=document.getElementById(e);t&&this.videoPlayer.setContainer(t)}else this.videoPlayer.setContainer(e)}},{key:"setVolume",value:function(e){this.core.utils.isUndefined(e)||this.audioPlayer.setVolume(e/100)}},{key:"setMuted",value:function(e){this.core.utils.isUndefined(e)||(this.muted=e,this.audioPlayer.setMuted(e))}},{key:"setFillMode",value:function(e){e&&this.videoPlayer.setObjectFit(e)}},{key:"setAudioTrack",value:function(e){this.audioPlayer.setTrack(e)}},{key:"setVideoTrack",value:function(e){this.videoPlayer.setTrack(e)}},{key:"play",value:(f=r(d().m(function e(){var t,r,n=this;return d().w(function(e){for(;;)switch(e.n){case 0:return t=this.videoPlayer.play().catch(function(e){n.handleAutoPlayFailed(n.videoPlayer,e,"video")}),r=this.audioPlayer.play().catch(function(e){n.handleAutoPlayFailed(n.audioPlayer,e)}),e.n=1,Promise.all([t,r]);case 1:return e.a(2)}},e,this)})),function(){return f.apply(this,arguments)})},{key:"handleAutoPlayFailed",value:function(e,t){var r,n,i=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"audio";this._log.warn("handleAutoPlayFailed",t);var a=function(){i.audioPlayer.resume().then(function(){document.removeEventListener("click",a,!0)})};document.addEventListener("click",a,!0),null==(n=null==(r=this.callback)?void 0:r.onAutoPlayFailed)||n.call(r,{type:o,resume:function(){return e.resume()}})}},{key:"pause",value:function(){this.videoPlayer.pause(!0),this.audioPlayer.setMuted(!0),this.audioPlayer.pause()}},{key:"resume",value:function(){this.videoPlayer.resume(!0),this.audioPlayer.setMuted(this.muted),this.audioPlayer.resume()}},{key:"enterFullscreen",value:(l=r(d().m(function e(){return d().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.videoPlayer.enterFullscreen();case 1:return e.a(2)}},e,this)})),function(){return l.apply(this,arguments)})},{key:"exitFullscreen",value:(s=r(d().m(function e(){return d().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.videoPlayer.exitFullscreen();case 1:return e.a(2)}},e,this)})),function(){return s.apply(this,arguments)})},{key:"enterPictureInPicture",value:(c=r(d().m(function e(){return d().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.videoPlayer.enterPictureInPicture();case 1:return e.a(2)}},e,this)})),function(){return c.apply(this,arguments)})},{key:"exitPictureInPicture",value:(o=r(d().m(function e(){return d().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.videoPlayer.exitPictureInPicture();case 1:return e.a(2)}},e,this)})),function(){return o.apply(this,arguments)})},{key:"stop",value:function(){this.videoPlayer&&this.videoPlayer.stop(),this.audioPlayer&&(this.audioPlayer.stop(),this.audioPlayer.setMuted(!1))}}]);var o,c,s,l,f,h}(re);M([Q([re.INIT,"PAUSED"],"LOADSTART",{ignoreError:!0,sync:!0,success:function(){var e,t;null==(t=null==(e=this.callback)?void 0:e.onLoadStart)||t.call(e)},fail:function(e){this._log.warn("onLoadStart",e)}})],ne.prototype,"onLoadStart"),M([Q(["LOADSTART","PAUSED"],"PLAYING",{ignoreError:!0,sync:!0,success:function(){var e,t;null==(t=null==(e=this.callback)?void 0:e.onPlaying)||t.call(e)},fail:function(e){this._log.warn("onPlaying",e)}})],ne.prototype,"onPlaying"),M([Q("PLAYING","PAUSED",{ignoreError:!0,sync:!0,success:function(){var e,t;null==(t=null==(e=this.callback)?void 0:e.onPaused)||t.call(e,{reason:this.lastPausedReason})},fail:function(e){this._log.warn("onPaused",e)}})],ne.prototype,"onPaused"),M([Q([],re.INIT,{ignoreError:!0,sync:!0,success:function(){var e,t;null==(t=null==(e=this.callback)?void 0:e.onStopped)||t.call(e)},fail:function(e){this._log.warn("onStopped",e)}})],ne.prototype,"onStopped");var ie,oe,ae,ce,se,ue,le,de,fe,he,pe,ve=ne,ye=["overseas-webrtc.tlivewebrtc.com","oswebrtc-lint.tliveplay.com"],me=function(){function e(t){i(this,e),this.core=t,F(this,"_sdkAppId"),F(this,"_userId"),F(this,"connectedRoomIdSet",new Set),F(this,"updateSeq",0),F(this,"_log"),F(this,"player"),F(this,"peerConnection"),F(this,"svrSig"),F(this,"streamURL"),F(this,"signalURL"),F(this,"insertableStreamsAbortMap",new Map),F(this,"scriptTransformWorker"),F(this,"scriptTransformWorkerPromise"),F(this,"connectionState","disconnected"),F(this,"isStarted",!1),F(this,"isStopped",!0),F(this,"isReconnecting",!1),F(this,"callback"),F(this,"isFireWallErrorEmitted",!1),F(this,"stat"),F(this,"isH264DecodeSupported"),F(this,"signalConfig",{protocol:"https",domain:"",query:!0}),F(this,"connectionTimeoutId"),F(this,"streamHealthCheckTimeoutId"),F(this,"streamHealthCheckReject"),t.loggerManager.startUpload(),this._log=this.core.log.createChild({id:"".concat(this.getAlias())}),this.player=new ve(t,this._log),t.innerEmitter.on(t.INNER_EVENT.SEI_MESSAGE,this.onSEIMessage,this)}return a(e,[{key:"getName",value:function(){return e.Name}},{key:"getAlias",value:function(){return"LEB"}},{key:"getGroup",value:function(){return""}},{key:"getValidateRule",value:function(e){switch(e){case"start":return N;case"update":case"stop":return{}}}},{key:"enableSEI",get:function(){return this.core.room.enableSEI&&(this.core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED||this.core.rtcDectection.IS_SCRIPT_TRANSFORM_SUPPORTED)}},{key:"wrapCallback",value:function(e){var t=this;if(e){for(var r={},n=["onStats","onSEIMessage"],i=function(){var i=a[o],c=e[i];"function"==typeof c&&(n.includes(i)?r[i]=c:r[i]=function(){return t._log.debug("callback ".concat(i," called"),arguments.length>0?arguments.length<=0?void 0:arguments[0]:""),c.apply(void 0,arguments)})},o=0,a=Object.keys(e);o<a.length;o++)i();return r}}},{key:"start",value:(g=r(d().m(function e(t){var r,n,i,o,a,c,s,u,l,f,h,p,v,y,m,g,S,w,b,P,k,E,_,R=this;return d().w(function(e){for(;;)switch(e.p=e.n){case 0:if(this.isStopped=!1,n=t.view,i=t.url,o=t.volume,a=t.muted,c=t.fillMode,s=t.loggerConfig,u=t.callback,l=t.signalDomain,this.callback=this.wrapCallback(u),void 0!==l&&("string"==typeof l?this.signalConfig=j(L({},this.signalConfig),{domain:l}):(f=l.protocol,h=l.domain,p=l.query,this.signalConfig={protocol:f&&["https","http"].includes(f)?f:"https",domain:h||"",query:void 0===p||p}),this._log.info("signalConfig",JSON.stringify(this.signalConfig))),this.player.setCallback(this.callback),v=this.core,y=v.errorModule,m=y.RtcError,g=y.ErrorCode,S=y.ErrorCodeDictionary,w=v.loggerManager,b=v.rtcDectection,this._sdkAppId=s.sdkAppId,this._userId=s.userId,this._log.setSdkAppId(s.sdkAppId),this._log.setUserId(s.userId),this.player.updateLogConfig(s),w.addJoinedUser(s),b.isWebRTCSupported()&&b.isAddTransceiverSupported()){e.n=1;break}throw new m({code:g.ENV_NOT_SUPPORTED,extraCode:S.NOT_SUPPORTED_WEBRTC,message:"webrtc not supported"});case 1:return e.n=2,b.decodeSupportStatus();case 2:if(E=!e.v.isH264DecodeSupported){e.n=3;break}E=!1===this.isH264DecodeSupported;case 3:if(!E){e.n=4;break}throw this.isH264DecodeSupported=!1,new m({code:g.ENV_NOT_SUPPORTED,extraCode:S.NOT_SUPPORTED_H264_DECODE,message:"h264 not supported"});case 4:return!b.IS_SEI_SUPPORTED&&(null==u?void 0:u.onSEIMessage)&&(null==(r=u.onError)||r.call(u,new m({code:g.ENV_NOT_SUPPORTED,extraCode:S.NOT_SUPPORTED_SEI,message:"sei not supported"}))),this.player.setVideoContainer(n),this.player.setMuted(a),this.player.setFillMode(c),e.p=5,e.n=6,this.connect(i);case 6:return this.stat=new q(this.peerConnection,this.core),this.stat.start(function(e){var t,r;return null==(r=null==(t=R.callback)?void 0:t.onStats)?void 0:r.call(t,e)}),P=this.player.play(),this.player.setVolume(o),k=this.createStreamHealthCheckPromise(),e.n=7,Promise.race([P,k]);case 7:this.clearStreamHealthCheck(),this.isStarted=!0,e.n=9;break;case 8:throw e.p=8,_=e.v,this.stop(),_;case 9:return e.a(2)}},e,this,[[5,8]])})),function(e){return g.apply(this,arguments)})},{key:"update",value:(m=r(d().m(function e(t){var r,n,i,o,a,c,s,u;return d().w(function(e){for(;;)switch(e.n){case 0:if(r=t.view,n=t.url,i=t.volume,o=t.muted,a=t.fillMode,c=t.action,s=t.fullScreen,u=t.pictureInPicture,!n||n===this.streamURL){e.n=1;break}return e.n=1,this.switchStream(n);case 1:if(this.player.setMuted(o),this.player.setVolume(i),this.player.setFillMode(a),r&&this.player.videoPlayer.setContainer(this.core.utils.isString(r)?document.getElementById(r):r),"pause"===c?this.player.pause():"resume"===c&&this.player.resume(),!this.core.utils.isBoolean(s)){e.n=4;break}if(!s){e.n=3;break}return e.n=2,this.player.enterFullscreen();case 2:e.n=4;break;case 3:return e.n=4,this.player.exitFullscreen();case 4:if(!this.core.utils.isBoolean(u)){e.n=7;break}if(!u){e.n=6;break}return e.n=5,this.player.enterPictureInPicture();case 5:e.n=7;break;case 6:return e.n=7,this.player.exitPictureInPicture();case 7:return e.a(2)}},e,this)})),function(e){return m.apply(this,arguments)})},{key:"switchStream",value:(y=r(d().m(function e(t){var r,n,i,o,a,c,s,u,l,f,h=this;return d().w(function(e){for(;;)switch(e.p=e.n){case 0:return this._log.info("switchStream",t),r=this.peerConnection,n=this.streamURL,i=this.signalURL,o=this.svrSig,a=new Map(this.insertableStreamsAbortMap),c=this.player,delete this.peerConnection,delete this.streamURL,delete this.signalURL,delete this.svrSig,this.insertableStreamsAbortMap.clear(),(s=new ve(this.core,this._log)).setVideoContainer(c.videoPlayer.container),s.setFillMode(c.videoPlayer.objectFit),s.setMuted(c.muted),s.setCallback(this.callback),u=function(e){var t=e.track;h.createEncodedStreams(e.receiver),h.initReceiverTransform(e.receiver,"audio"===t.kind),"audio"===t.kind?s.setAudioTrack(t):s.setVideoTrack(t)},e.p=1,e.n=2,this.connectForSwitch(t,u);case 2:return this._log.info("switchStream: new connection established"),e.n=3,this.waitForNewPlayerFirstFrame(s);case 3:this._log.info("switchStream: new stream first frame received"),c.audioPlayer.setMuted(!0),c.stop(),this.player=s,r&&(clearTimeout(this.connectionTimeoutId),r.close(),r.getReceivers().forEach(function(e){return a.delete(e)}),n&&o&&i&&this.fetchStopStreamWithParams(n,i,o).catch(function(e){h._log.warn("switchStream: stop old stream failed",e)})),this._log.info("switchStream: switch completed successfully"),e.n=5;break;case 4:throw e.p=4,f=e.v,this._log.error("switchStream failed",f),s.stop(),(l=this.peerConnection)&&(l.close(),l.getReceivers().forEach(function(e){return h.insertableStreamsAbortMap.delete(e)})),this.peerConnection=r,this.streamURL=n,this.signalURL=i,this.svrSig=o,this.insertableStreamsAbortMap=a,this.player=c,c.audioPlayer.setMuted(c.muted),f;case 5:return e.a(2)}},e,this,[[1,4]])})),function(e){return y.apply(this,arguments)})},{key:"waitForNewPlayerFirstFrame",value:function(e){var t=this;return new Promise(function(r,n){var i=0,o=!1,a=e.videoPlayer.getElement();if(a){var c=function(){o=!0,clearInterval(l),a.removeEventListener("loadeddata",s),a.removeEventListener("playing",u)},s=function(){o||(t._log.info("waitForNewPlayerFirstFrame: loadeddata event fired"),c(),r())},u=function(){o||(t._log.info("waitForNewPlayerFirstFrame: playing event fired"),c(),r())};a.addEventListener("loadeddata",s,{once:!0}),a.addEventListener("playing",u,{once:!0}),e.play().catch(function(e){t._log.warn("waitForNewPlayerFirstFrame: play failed",e)});var l=setInterval(function(){if(!o){if(i+=100,a.videoWidth>0&&a.videoHeight>0)return t._log.info("waitForNewPlayerFirstFrame: video has valid dimensions ".concat(a.videoWidth,"x").concat(a.videoHeight)),c(),void r();i>=1e4&&(c(),n(new Error("waitForNewPlayerFirstFrame timeout")))}},100)}else n(new Error("VideoPlayer has no video element"))})}},{key:"connectForSwitch",value:function(e,t){var r=this;return new Promise(function(n,i){try{r.initScriptTransformWorker();var o={encodedInsertableStreams:r.enableSEI,iceServers:[],sdpSemantics:"unified-plan",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",tcpCandidatePolicy:"disable",IceTransportsType:"nohost"},a=new RTCPeerConnection(o);r.peerConnection=a,a.onconnectionstatechange=function(){r.connectionState=a.connectionState,r._log.info("connectForSwitch connectionState",a.connectionState),"failed"!==a.connectionState&&"closed"!==a.connectionState||i(new Error("connection is ".concat(a.connectionState))),"connected"===a.connectionState&&(r.logSelectedCandidate(),n())},a.ontrack=t,a.addTransceiver("audio",{direction:"recvonly"}),a.addTransceiver("video",{direction:"recvonly"}),r._log.info("connectForSwitch createOffer"),a.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0,voiceActivityDetection:!1}).then(function(e){return e.sdp=U(e.sdp),r._log.info("connectForSwitch setOffer"),a.setLocalDescription(e)}).then(function(){var t={sessionId:W(),streamurl:e,clientinfo:r.core.environment.getOSString(),localsdp:a.localDescription};return r.exchangeSDP(e,t)}).then(function(e){return r._log.info("connectForSwitch setAnswer"),a.setRemoteDescription(e)}).catch(i)}catch(e){i(e)}r.connectionTimeoutId=setTimeout(function(){return i(new Error("connection timeout"))},1e4)})}},{key:"fetchStopStreamWithParams",value:(v=r(d().m(function e(t,r,n){var i,o,a,c,s;return d().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,i="".concat(r,"/webrtc/v1/stopstream"),e.n=1,Se(i,{streamurl:t,svrsig:n},{timeout:3});case 1:if(o=e.v,a=o.errcode,c=o.errmsg,0===a){e.n=2;break}throw new Error("errCode:".concat(a,", errmsg:").concat(c));case 2:return e.a(2,o);case 3:e.p=3,s=e.v,this._log.error("fetchStopStreamWithParams error",s);case 4:return e.a(2)}},e,this,[[0,3]])})),function(e,t,r){return v.apply(this,arguments)})},{key:"stop",value:(h=r(d().m(function e(){var t=this;return d().w(function(e){for(;;)switch(e.n){case 0:if(this.isStopped=!0,this.clearStreamHealthCheck(),this.player.stop(),!this.peerConnection){e.n=2;break}return clearTimeout(this.connectionTimeoutId),this.peerConnection.close(),this.peerConnection.getReceivers().forEach(function(e){return t.insertableStreamsAbortMap.delete(e)}),delete this.peerConnection,e.n=1,this.fetchStopStream();case 1:delete this.streamURL,delete this.signalURL,delete this.svrSig;case 2:this.stat&&(this.stat.stop(),delete this.stat),this.scriptTransformWorker&&(this.scriptTransformWorker.onmessage=null,this.scriptTransformWorker.onerror=null,this.scriptTransformWorker.terminate(),delete this.scriptTransformWorker),delete this.scriptTransformWorkerPromise,this.core.room.keyPointManager.uploadKVStat(this.core.kvStatManager,this._sdkAppId);case 3:return e.a(2)}},e,this)})),function(){return h.apply(this,arguments)})},{key:"destroy",value:function(){this.stop(),this.core.innerEmitter.off(this.core.INNER_EVENT.SEI_MESSAGE,this.onSEIMessage,this)}},{key:"createStreamHealthCheckPromise",value:function(){var e=this;return new Promise(function(t,r){e.streamHealthCheckReject=r,e.streamHealthCheckTimeoutId=window.setTimeout(function(){return e.checkStreamHealth(r)},5e3)})}},{key:"clearStreamHealthCheck",value:function(){this.streamHealthCheckTimeoutId&&(clearTimeout(this.streamHealthCheckTimeoutId),delete this.streamHealthCheckTimeoutId),delete this.streamHealthCheckReject}},{key:"checkStreamHealth",value:(f=r(d().m(function e(t){var r,n,i,o,a,c,s,u,l,f,h,p,v,y;return d().w(function(e){for(;;)switch(e.p=e.n){case 0:if(!this.isStopped&&this.peerConnection){e.n=1;break}return e.a(2);case 1:if(e.p=1,r=this.peerConnection.getReceivers(),n=r.find(function(e){var t;return"video"===(null==(t=e.track)?void 0:t.kind)})){e.n=2;break}return this._log.warn("checkStreamHealth: no video receiver found"),e.a(2);case 2:return e.n=3,n.getStats();case 3:i=e.v,o=0,a=0,i.forEach(function(e){"inbound-rtp"===e.type&&("video"===e.mediaType||"video"===e.kind)&&(o=e.bytesReceived||0,a=e.framesDecoded||0)}),c=this.player.isPlaying,s=c||a>0,this._log.info("checkStreamHealth: bytesReceived=".concat(o,", framesDecoded=").concat(a,", isPlaying=").concat(c)),u=this.core.errorModule,l=u.RtcError,f=u.ErrorCode,h=u.ErrorCodeDictionary,0===o?(this._log.warn("checkStreamHealth: no stream data received after 5s"),p=new l({code:f.OPERATION_FAILED,message:"no stream data received"}),t(p)):s||(this._log.warn("checkStreamHealth: decode failed"),this.isH264DecodeSupported=!1,v=new l({code:f.ENV_NOT_SUPPORTED,extraCode:h.NOT_SUPPORTED_H264_DECODE,message:"h264 decode failed"}),t(v)),e.n=5;break;case 4:e.p=4,y=e.v,this._log.warn("checkStreamHealth error",y);case 5:return e.a(2)}},e,this,[[1,4]])})),function(e){return f.apply(this,arguments)})},{key:"connect",value:function(e){var t=this;return new Promise(function(r,n){try{t.initScriptTransformWorker();var i={encodedInsertableStreams:t.enableSEI,iceServers:[],sdpSemantics:"unified-plan",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",tcpCandidatePolicy:"disable",IceTransportsType:"nohost"},o=new RTCPeerConnection(i);t.peerConnection=o,o.onconnectionstatechange=function(){t.connectionState=o.connectionState,t._log.info("connectionState",o.connectionState),"failed"!==o.connectionState&&"closed"!==o.connectionState||(t.isStarted?t.reconnect(e):n(new Error("connection is ".concat(o.connectionState)))),"connected"===o.connectionState&&(t.logSelectedCandidate(),r())},o.ontrack=function(e){return t.onTrack(e)},o.addTransceiver("audio",{direction:"recvonly"}),o.addTransceiver("video",{direction:"recvonly"}),t._log.info("createOffer"),o.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0,voiceActivityDetection:!1}).then(function(e){return e.sdp=U(e.sdp),t._log.info("setOffer"),o.setLocalDescription(e)}).then(function(){var r={sessionId:W(),streamurl:e,clientinfo:t.core.environment.getOSString(),localsdp:o.localDescription};return t.exchangeSDP(e,r)}).then(function(e){return t._log.info("setAnswer"),o.setRemoteDescription(e)}).catch(n)}catch(e){n(e)}t.connectionTimeoutId=setTimeout(function(){return n(new Error("connection timeout"))},1e4)})}},{key:"exchangeSDP",value:(l=r(d().m(function e(t,r){var n,i,o,a,c,s,u,l,f,h,p,v,y,m,g,S,w,b,P,k=this;return d().w(function(e){for(;;)switch(e.p=e.n){case 0:if(a=this.signalConfig,c=a.protocol,s=a.domain,u=a.query,l=Pe(t),!u){e.n=12;break}if(e.p=1,this._log.info("exchangeSDP"),l){e.n=2;break}throw new Error("streamDomain is empty");case 2:return e.n=3,this.fetchSignalDomain(l);case 3:if(f=e.v,h=f.signalDomain,p=f.cached,!h){e.n=5;break}return this._log.info("try exchangeSDP signalDomain:",h,p),e.n=4,this.doExchangeSDP("".concat(c,"://").concat(h),r,3);case 4:v=e.v,n=v.url,i=v.remoteSdp,o=v.svrSig,e.n=6;break;case 5:throw new Error("signalDomain is empty");case 6:e.n=11;break;case 7:return e.p=7,w=e.v,this._log.warn("exchangeSDP failed, fallback",w),y=s?["".concat(c,"://").concat(s)]:ye.map(function(e){return"".concat(c,"://").concat(e)}),e.p=8,e.n=9,this.core.utils.promiseAny(y.map(function(e){return k.doExchangeSDP(e,r,3)}));case 9:m=e.v,n=m.url,i=m.remoteSdp,o=m.svrSig,e.n=11;break;case 10:throw e.p=10,b=e.v,this._log.error("exchangeSDP failed",b),b[0]||b;case 11:e.n=17;break;case 12:return this._log.info("exchangeSDP with query=false, domain:",s),g=s?["".concat(c,"://").concat(s)]:ye.map(function(e){return"".concat(c,"://").concat(e)}),e.p=13,e.n=14,this.core.utils.promiseAny(g.map(function(e){return k.doExchangeSDP(e,r,3)}));case 14:S=e.v,n=S.url,i=S.remoteSdp,o=S.svrSig,e.n=16;break;case 15:throw e.p=15,P=e.v,this._log.error("exchangeSDP failed",P),P[0]||P;case 16:l&&!s&&this.fetchSignalDomain(l).catch(function(){});case 17:return this.streamURL=t,this.signalURL=n,this.svrSig=o,e.a(2,i)}},e,this,[[13,15],[8,10],[1,7]])})),function(e,t){return l.apply(this,arguments)})},{key:"reconnect",value:(u=r(d().m(function e(t){var r,n,i,o,a,c;return d().w(function(e){for(;;)switch(e.p=e.n){case 0:if(!this.isReconnecting){e.n=1;break}return e.a(2);case 1:return this.isReconnecting=!0,e.p=2,this._log.warn("start reconnect"),e.n=3,this.connect(t);case 3:this._log.warn("reconnect success"),e.n=5;break;case 4:e.p=4,c=e.v,this._log.error("reconnect error",c),i=this.core.errorModule,o=i.RtcError,a=i.ErrorCode,null==(n=null==(r=this.callback)?void 0:r.onError)||n.call(r,new o({code:a.OPERATION_FAILED,message:"reconnect failed"}));case 5:return e.p=5,this.isReconnecting=!1,e.f(5);case 6:return e.a(2)}},e,this,[[2,4,5,6]])})),function(e){return u.apply(this,arguments)})},{key:"logSelectedCandidate",value:(s=r(d().m(function e(){var t,r,n,i,o,a,s,u;return d().w(function(e){for(;;)switch(e.p=e.n){case 0:if(this.peerConnection){e.n=1;break}return e.a(2);case 1:return e.n=2,this.peerCo