UNPKG

dingrtc

Version:

dingRTC web端 sdk

3 lines 316 kB
import"webrtc-adapter";import{Environment as e,getReporter as t,SystemType as r,BrowserType as i,DingRTCError as n,ErrorCode as a,setGslb as o,isString as s,EventEmitter as c,parseAudioDeviceError as u,parseVideoDeviceError as l,addTimer as d,isObject as p,isNumber as f,Debouncer as v,removeTimer as m,getPlainMediaStreamInfo as h,tryJsonStringify as g,EventBus as b,createUuid as y,getPlainMediaTrackInfo as k,parseScreenShareError as S,getProtobufRoot as P,isPrivateIP as w,SdkType as T,uniqBy as M,VideoSourceInfo as O,TraceEvent as E,registerReporter as I,setLogLevel as A}from"@dingrtc/shared";export{ErrorCodeAndMsgMap}from"@dingrtc/shared";import R from"sdp-transform";import{DingRTCChannel as _}from"@dingrtc/channel";function x(e,t,r,i,n,a,o){try{var s=e[a](o),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(i,n)}function C(e){return function(){var t=this,r=arguments;return new Promise(function(i,n){var a=e.apply(t,r);function o(e){x(a,i,n,o,s,"next",e)}function s(e){x(a,i,n,o,s,"throw",e)}o(void 0)})}}function j(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function D(e){return D="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},D(e)}function L(e){var t=function(e,t){if("object"!=D(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t);if("object"!=D(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e,"string");return"symbol"==D(t)?t:t+""}function N(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,L(i.key),i)}}function F(e,t,r){return t&&N(e.prototype,t),r&&N(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function U(e,t){if(t&&("object"==D(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)}function G(e){return G=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},G(e)}function V(e,t){return V=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},V(e,t)}function B(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&&V(e,t)}function H(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var q,W={exports:{}},Y={exports:{}};(q=Y).exports=function(e,t){this.v=e,this.k=t},q.exports.__esModule=!0,q.exports.default=q.exports;var Q=Y.exports,J={exports:{}},K={exports:{}};!function(e){function t(r,i,n,a){var o=Object.defineProperty;try{o({},"",{})}catch(r){o=0}e.exports=t=function(e,r,i,n){function a(r,i){t(e,r,function(e){return this._invoke(r,i,e)})}r?o?o(e,r,{value:i,enumerable:!n,configurable:!n,writable:!n}):e[r]=i:(a("next",0),a("throw",1),a("return",2))},e.exports.__esModule=!0,e.exports.default=e.exports,t(r,i,n,a)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}(K);var z=K.exports;!function(e){var t=z;function r(){ /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var i,n,a="function"==typeof Symbol?Symbol:{},o=a.iterator||"@@iterator",s=a.toStringTag||"@@toStringTag";function c(e,r,a,o){var s=r&&r.prototype instanceof l?r:l,c=Object.create(s.prototype);return t(c,"_invoke",function(e,t,r){var a,o,s,c=0,l=r||[],d=!1,p={p:0,n:0,v:i,a:f,f:f.bind(i,4),d:function(e,t){return a=e,o=0,s=i,p.n=t,u}};function f(e,t){for(o=e,s=t,n=0;!d&&c&&!r&&n<l.length;n++){var r,a=l[n],f=p.p,v=a[2];e>3?(r=v===t)&&(s=a[(o=a[4])?5:(o=3,3)],a[4]=a[5]=i):a[0]<=f&&((r=e<2&&f<a[1])?(o=0,p.v=t,p.n=a[1]):f<v&&(r=e<3||a[0]>t||t>v)&&(a[4]=e,a[5]=t,p.n=v,o=0))}if(r||e>1)return u;throw d=!0,t}return function(r,l,v){if(c>1)throw TypeError("Generator is already running");for(d&&1===l&&f(l,v),o=l,s=v;(n=o<2?i:s)||!d;){a||(o?o<3?(o>1&&(p.n=-1),f(o,s)):p.n=s:p.v=s);try{if(c=2,a){if(o||(r="next"),n=a[r]){if(!(n=n.call(a,s)))throw TypeError("iterator result is not an object");if(!n.done)return n;s=n.value,o<2&&(o=0)}else 1===o&&(n=a.return)&&n.call(a),o<2&&(s=TypeError("The iterator does not provide a '"+r+"' method"),o=1);a=i}else if((n=(d=p.n<0)?s:e.call(t,p))!==u)break}catch(e){a=i,o=1,s=e}finally{c=1}}return{value:n,done:d}}}(e,a,o),!0),c}var u={};function l(){}function d(){}function p(){}n=Object.getPrototypeOf;var f=[][o]?n(n([][o]())):(t(n={},o,function(){return this}),n),v=p.prototype=l.prototype=Object.create(f);function m(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,t(e,s,"GeneratorFunction")),e.prototype=Object.create(v),e}return d.prototype=p,t(v,"constructor",p),t(p,"constructor",d),d.displayName="GeneratorFunction",t(p,s,"GeneratorFunction"),t(v),t(v,s,"Generator"),t(v,o,function(){return this}),t(v,"toString",function(){return"[object Generator]"}),(e.exports=r=function(){return{w:c,m:m}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports}(J);var $=J.exports,X={exports:{}},Z={exports:{}},ee={exports:{}};!function(e){var t=Q,r=z;e.exports=function e(i,n){function a(e,r,o,s){try{var c=i[e](r),u=c.value;return u instanceof t?n.resolve(u.v).then(function(e){a("next",e,o,s)},function(e){a("throw",e,o,s)}):n.resolve(u).then(function(e){c.value=e,o(c)},function(e){return a("throw",e,o,s)})}catch(e){s(e)}}var o;this.next||(r(e.prototype),r(e.prototype,"function"==typeof Symbol&&Symbol.asyncIterator||"@asyncIterator",function(){return this})),r(this,"_invoke",function(e,t,r){function i(){return new n(function(t,i){a(e,r,t,i)})}return o=o?o.then(i,i):i()},!0)},e.exports.__esModule=!0,e.exports.default=e.exports}(ee);var te=ee.exports;!function(e){var t=$,r=te;e.exports=function(e,i,n,a,o){return new r(t().w(e,i,n,a),o||Promise)},e.exports.__esModule=!0,e.exports.default=e.exports}(Z);var re=Z.exports;!function(e){var t=re;e.exports=function(e,r,i,n,a){var o=t(e,r,i,n,a);return o.next().then(function(e){return e.done?e.value:o.next()})},e.exports.__esModule=!0,e.exports.default=e.exports}(X);var ie=X.exports,ne={exports:{}};!function(e){e.exports=function(e){var t=Object(e),r=[];for(var i in t)r.unshift(i);return function e(){for(;r.length;)if((i=r.pop())in t)return e.value=i,e.done=!1,e;return e.done=!0,e}},e.exports.__esModule=!0,e.exports.default=e.exports}(ne);var ae=ne.exports,oe={exports:{}},se={exports:{}};!function(e){function t(r){return e.exports=t="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},e.exports.__esModule=!0,e.exports.default=e.exports,t(r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}(se);var ce=se.exports;!function(e){var t=ce.default;e.exports=function(e){if(null!=e){var r=e["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],i=0;if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}}}throw new TypeError(t(e)+" is not iterable")},e.exports.__esModule=!0,e.exports.default=e.exports}(oe);var ue=oe.exports;!function(e){var t=Q,r=$,i=ie,n=re,a=te,o=ae,s=ue;function c(){var u=r(),l=u.m(c),d=(Object.getPrototypeOf?Object.getPrototypeOf(l):l.__proto__).constructor;function p(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===d||"GeneratorFunction"===(t.displayName||t.name))}var f={throw:1,return:2,break:3,continue:3};function v(e){var t,r;return function(i){t||(t={stop:function(){return r(i.a,2)},catch:function(){return i.v},abrupt:function(e,t){return r(i.a,f[e],t)},delegateYield:function(e,n,a){return t.resultName=n,r(i.d,s(e),a)},finish:function(e){return r(i.f,e)}},r=function(e,r,n){i.p=t.prev,i.n=t.next;try{return e(r,n)}finally{t.next=i.n}}),t.resultName&&(t[t.resultName]=i.v,t.resultName=void 0),t.sent=i.v,t.next=i.n;try{return e.call(this,t)}finally{i.p=t.prev,i.n=t.next}}}return(e.exports=c=function(){return{wrap:function(e,t,r,i){return u.w(v(e),t,r,i&&i.reverse())},isGeneratorFunction:p,mark:u.m,awrap:function(e,r){return new t(e,r)},AsyncIterator:a,async:function(e,t,r,a,o){return(p(t)?n:i)(v(e),t,r,a,o)},keys:o,values:s}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=c,e.exports.__esModule=!0,e.exports.default=e.exports}(W);var le=(0,W.exports)(),de=le;try{regeneratorRuntime=le}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=le:Function("r","regeneratorRuntime = r")(le)}var pe,fe,ve,me,he,ge,be,ye,ke,Se,Pe,we,Te,Me,Oe=H(de);function Ee(e,t,r){return(t=L(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ie(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}function Ae(e,t){if(e){if("string"==typeof e)return Ie(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Ie(e,t):void 0}}function Re(e){return function(e){if(Array.isArray(e))return Ie(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Ae(e)||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 _e(){return _e="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var i=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=G(e)););return e}(e,t);if(i){var n=Object.getOwnPropertyDescriptor(i,t);return n.get?n.get.call(arguments.length<3?e:r):n.value}},_e.apply(null,arguments)}!function(e){e.PCMU="pcmu",e.PCMA="pcma",e.OPUS="opus",e.G722="g722",e.ISAC="iSAC",e.ILBC="iLBC",e.AAC="aac",e.AC3="ac3",e.NELLYMOSER="nellymoser"}(pe||(pe={})),function(e){e.VP8="vp8",e.VP9="vp9",e.H264="h264",e.H265="h265",e.AV1="av1",e.AV1X="av1x"}(fe||(fe={})),function(e){e.MIC="mic",e.SCREENCAST="screen-cast",e.MIXED="mixed"}(ve||(ve={})),function(e){e.CAMERA="camera",e.SCREENCAST="screen-cast",e.MIXED="mixed"}(me||(me={})),function(e){e.PUBLISH="publish",e.SUBSCRIBE="subscribe"}(he||(he={})),function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.GREAT=1]="GREAT",e[e.GOOD=2]="GOOD",e[e.NORMAL=3]="NORMAL",e[e.POOR=4]="POOR",e[e.BAD=5]="BAD",e[e.DISCONNECTED=6]="DISCONNECTED"}(ge||(ge={})),function(e){e[e.Native=1]="Native",e[e.Web=2]="Web",e[e.MiniProgram=3]="MiniProgram"}(be||(be={})),function(e){e[e.Windows=1]="Windows",e[e.Android=2]="Android",e[e.Mac=3]="Mac",e[e.iOS=4]="iOS",e[e.Linux=5]="Linux",e[e.Others=6]="Others"}(ye||(ye={})),function(e){e[e.UserKickOut=2011]="UserKickOut",e[e.UserReplaced=2012]="UserReplaced"}(ke||(ke={})),function(e){e[e.Idle=0]="Idle",e[e.Processing=1]="Processing",e[e.End=2]="End"}(Se||(Se={})),function(e){e[e.New=0]="New",e[e.Idle=1]="Idle",e[e.Processing=2]="Processing",e[e.Ended=3]="Ended"}(Pe||(Pe={})),function(e){e.QuotaLimit="task exceed limit",e.PCNotExisted="connection does NOT exist",e.RoomClosed="room_already_closed:30107",e.RoomNotExisted="room does not exist",e.RoomBusy="RoomBusy",e.RoomNotJoined="participant has not joined",e.FailOver="Session has been aborted"}(we||(we={})),function(e){e[e.MIC_OPEN=0]="MIC_OPEN",e[e.MIC_INTERRUPTED=1]="MIC_INTERRUPTED",e[e.CAMERA_OPEN=2]="CAMERA_OPEN",e[e.BACKGROUND_MODE=3]="BACKGROUND_MODE",e[e.DOWNLINK=4]="DOWNLINK",e[e.UPLINK=5]="UPLINK"}(Te||(Te={})),function(e){e[e.None=0]="None",e[e.LD=2]="LD",e[e.SD=4]="SD",e[e.HD=8]="HD",e[e.FHD=16]="FHD",e[e.QHD=32]="QHD",e[e.UHD=64]="UHD"}(Me||(Me={}));var xe,Ce="3.9.22-beta.1",je={VD_120x120:[120,120],VD_160x120:[160,120],VD_180x180:[180,180],VD_240x180:[240,180],VD_320x180:[320,180],VD_240x240:[240,240],VD_320x240:[320,240],VD_424x240:[424,240],VD_360x360:[360,360],VD_480x360:[480,360],VD_640x360:[640,360],VD_480x480:[480,480],VD_640x480:[640,480],VD_840x480:[840,480],VD_960x540:[960,540],VD_960x720:[960,720],VD_1280x720:[1280,720],VD_1920x1080:[1920,1080],VD_2560x1440:[2560,1440]};!function(e){e.Playing="playing",e.Paused="paused",e.Stopped="stopped"}(xe||(xe={}));var De=Ce,Le=-999,Ne="rtc-label";JSON.stringify({needPersonalityAudioStream:!0,outPeerConnectionNotReuse:!0}),e.browserType,e.browserVersion,e.system,e.systemVersion;var Fe="onertc_state_sync",Ue="onertc_internal_track_event",Ge="rtc_sdk_el_data",Ve="rtc_sdk_player_container_label",Be=t().getLoggerWithPrefix("rtc-support"),He=new(function(){return F(function t(){j(this,t),Object.defineProperty(this,"system",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"browser",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"browserVersion",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.system=e.system,this.browser=e.browserType,this.browserVersion=e.browserVersion},[{key:"getSupportedCodec",value:(t=C(Oe.mark(function e(){var t,r,i;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t={audio:[],video:[]},e.prev=1,(r=new RTCPeerConnection).addTransceiver("video",{direction:"recvonly"}),r.addTransceiver("audio",{direction:"recvonly"}),e.next=2,r.createOffer();case 2:if(i=e.sent.sdp){e.next=3;break}return e.abrupt("return",t);case 3:return r.close(),r=null,i.match(/ VP8/i)&&t.video.push("VP8"),i.match(/ VP9/i)&&t.video.push("VP9"),i.match(/ AV1/i)&&t.video.push("AV1"),i.match(/ H264/i)&&t.video.push("H264"),i.match(/ H265/i)&&t.video.push("H265"),i.match(/ opus/i)&&t.audio.push("OPUS"),i.match(/ PCMU/i)&&t.audio.push("PCMU"),i.match(/ PCMA/i)&&t.audio.push("PCMA"),i.match(/ G722/i)&&t.audio.push("G722"),e.abrupt("return",t);case 4:throw e.prev=4,e.catch(1),Be.error("get supportedCodecs failed"),new n(a.IceConnectionSetLocalDescFail,"get supportedCodecs failed");case 5:case"end":return e.stop()}},e,null,[[1,4]])})),function(){return t.apply(this,arguments)})},{key:"checkSupported",value:function(){var t=!1;try{var r=window.RTCPeerConnection,i=navigator.mediaDevices&&navigator.mediaDevices.getUserMedia,n=window.WebSocket;t=!!(r&&i&&n)}catch(e){return Be.error("checkSystemRequirements error",e),!1}var a=!1;a=e.isChrome()||e.isFirefox()?parseInt(e.browserVersion,10)>=69:e.isOpera()?parseInt(e.browserVersion,10)>=45:e.isSafari()?parseInt(e.browserVersion,10)>=11:(e.isWeixin()||e.isQQBrowser(),!0);var o=t&&a;return Be.info("checkSystemRequirements, api:",t,"browser",a),o}},{key:"isSupportScreenShare",value:function(){return!this.system.includes(r.ANDROID)&&this.system!==r.IOS&&(!(this.browser===i.SAFARI&&parseInt(this.browserVersion)<13)&&(!(this.browser===i.FIREFOX&&parseInt(this.browserVersion)<66)&&!!(navigator&&navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia)))}}]);var t}()),qe=function(){var t,r=(null===(t=window.RTCRtpSender)||void 0===t?void 0:t.prototype)||{},i=r.setParameters,n=r.getParameters;return!(!i||!n)&&(!e.isFirefox()&&(e.isSafari()?parseInt(e.browserVersion)>=14:e.isChrome()?parseInt(e.browserVersion)>=81:!e.isAndroid()))};function We(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(We=function(){return!!e})()}var Ye=t().getLoggerWithPrefix("[rtc-config]"),Qe=new(function(){function e(){var t,r,i,n;return j(this,e),r=this,i=G(i=e),t=U(r,We()?Reflect.construct(i,[],G(r).constructor):i.apply(r,n)),Object.defineProperty(t,"gslb",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(t,"simulcast",{enumerable:!0,configurable:!0,writable:!0,value:qe()}),Object.defineProperty(t,"audioSFU",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(t,"republish",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(t,"disableTransportCC",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(t,"preferH264CbProfile",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(t,"downlinkForbidHighProfile",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(t,"highStartBitrate",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(t,"_holdVideoLastFrame",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(t,"_consoleLogLevel",{enumerable:!0,configurable:!0,writable:!0,value:"warn"}),Object.defineProperty(t,"connectPcTimeoutMs",{enumerable:!0,configurable:!0,writable:!0,value:4e3}),t.setClientConfig({gslb:["https://gslb.dingrtc.com"]}),t}return B(e,c),F(e,[{key:"setClientConfig",value:function(e){Ye.info("setClientConfig",e);var t=e||{},r=t.gslb,i=t.simulcast,n=t.audioSFU,a=t.republish,c=t.disableTransportCC,u=t.highStartBitrate;"string"==typeof r&&(this.gslb=[r],o(r)),Array.isArray(r)&&s(r[0])&&(this.gslb=r,o(r[0])),null!=i&&qe()&&(this.simulcast=Boolean(i)),null!=n&&(this.audioSFU=Boolean(n)),null!=c&&(this.disableTransportCC=Boolean(c)),null!=a&&(this.republish=Boolean(a)),null!=u&&(this.highStartBitrate=!!u),null!=e&&e._consoleLogLevel&&(this._consoleLogLevel=null==e?void 0:e._consoleLogLevel),"boolean"==typeof(null==e?void 0:e.preferH264CbProfile)&&(this.preferH264CbProfile=e.preferH264CbProfile),(null==e?void 0:e.connectPcTimeoutMs)>=0&&e.connectPcTimeoutMs<=Number.MAX_SAFE_INTEGER?this.connectPcTimeoutMs=e.connectPcTimeoutMs:void 0!==(null==e?void 0:e.connectPcTimeoutMs)&&null!==(null==e?void 0:e.connectPcTimeoutMs)&&console.error("connectPcTimeoutMs should be a non-negative number")}}])}()),Je=function(e,t){return e.width!==t.width?e.width-t.width:e.height-t.height},Ke=function(e){var t;if(!e)return[];var r=e.media.video;if(!r)return[];var i=[],n=r.optional,a=r.parameters;return null!=a&&a.resolution&&i.push(a.resolution),null!=n&&null!==(t=n.parameters)&&void 0!==t&&null!==(t=t.resolution)&&void 0!==t&&t.length&&i.push.apply(i,Re(n.parameters.resolution)),i.sort(Je),i},ze=function(e,t){var r,i=e.media,o=i.audio,s=i.video;if(t===we.QuotaLimit)return r=new n(a.QuotaLimitExceed);if(o)r=new n(a.SubscribeAudioStreamFailed,t);else if(s){var c=s.source;c===me.CAMERA?r=new n(a.SubscribeVideoStreamFailed,t):c===me.SCREENCAST&&(r=new n(a.SubscribeScreenShareFailed,t))}return r},$e=function(e,t){var r,i=e.trackMediaType;if(t===we.QuotaLimit)return r=new n(a.QuotaLimitExceed);if("audio"===i)r=new n(a.PublishAudioStreamFailed,t);else{var o=e.source;o===me.CAMERA?r=new n(a.PublishVideoStreamFailed,t):o===me.SCREENCAST&&(r=new n(a.PublishScreenShareFailed,t))}return r},Xe=function(e,t,r,i){var n=i,a=e.getVideoTracks(),o=e.getAudioTracks();return"audio"===t&&o.length?Qe.audioSFU?i?i.replaceStream(e):n=new Hr(null,r,e):i?i.replaceTrack(o[0]):n=new Hr(o[0],r):"video"===t&&a.length&&(i?i.replaceTrack(a[0]):n=new qr(a[0],r)),n},Ze=function(e){return"object"===D(e.video)&&e.video.source===me.SCREENCAST};function et(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,i)}return r}function tt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?et(Object(r),!0).forEach(function(t){Ee(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):et(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function rt(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return it(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?it(e,t):void 0}}(e))||t){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:n}}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 a,o=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function it(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);r<t;r++)i[r]=e[r];return i}function nt(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(nt=function(){return!!e})()}var at=t().getLoggerWithPrefix("[rtc-device]"),ot=function(){function t(){var e,r,i,n,a;return j(this,t),r=this,i=G(i=t),e=U(r,nt()?Reflect.construct(i,[],G(r).constructor):i.apply(r,n)),Object.defineProperty(e,"deviceList",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(e,"checking",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(e,"checkDeviceUpdate",{enumerable:!0,configurable:!0,writable:!0,value:(a=C(Oe.mark(function r(){var i;return Oe.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:if(!e.checking){r.next=1;break}return r.abrupt("return");case 1:return e.checking=!0,r.next=2,t.getDevices();case 2:i=r.sent,e.compareDevices(i,"audiooutput"),e.compareDevices(i,"videoinput"),e.compareDevices(i,"audioinput"),e.deviceList=i,e.checking=!1;case 3:case"end":return r.stop()}},r)})),function(){return a.apply(this,arguments)})}),Object.defineProperty(e,"compareDevices",{enumerable:!0,configurable:!0,writable:!0,value:function(t,r){var i,n=t.filter(function(e){return e.kind===r}),a=e.deviceList.filter(function(e){return e.kind===r}),o=n.map(function(e){return e.deviceId}),s=a.map(function(e){return e.deviceId}),c=n.filter(function(e){var t=e.deviceId;return!s.includes(t)}),u=a.filter(function(e){var t=e.deviceId;return!o.includes(t)}),l={audioinput:"microphone-changed",audiooutput:"playback-device-changed",videoinput:"camera-changed"},d=rt(c);try{for(d.s();!(i=d.n()).done;){var p=i.value;e.emit(l[r],{device:p,state:"active"})}}catch(e){d.e(e)}finally{d.f()}var f,v=rt(u);try{for(v.s();!(f=v.n()).done;){var m=f.value;e.emit(l[r],{device:m,state:"inactive"})}}catch(e){v.e(e)}finally{v.f()}}}),t._instance?U(e,t._instance):(e.deviceList=[],He.checkSupported()?(t.getDevices({audio:!0,video:!0},!0).then(function(t){e.deviceList=t,e.addEventListeners()}),e):U(e))}return B(t,c),F(t,[{key:"addEventListeners",value:function(){"ondevicechange"in navigator.mediaDevices?navigator.mediaDevices.addEventListener("devicechange",this.checkDeviceUpdate):d(this.checkDeviceUpdate,1e3,"interval")}}],[{key:"getInstance",value:function(){return t._instance}},{key:"getMedias",value:(r=C(Oe.mark(function r(i,o){var s,c,u,l,d,p,f,v,m,h,g;return Oe.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:if(t.accGetMedia++,s=t.accGetMedia,!Ze(i)){r.next=6;break}if(at.info("getDisplayMedia with",s,i,o),!e.isElectron()){r.next=3;break}if(o.video){r.next=1;break}throw new n(a.ScreenShareOpenFail,"only video screen cast is supported, but got no video parameters");case 1:return r.next=2,navigator.mediaDevices.getUserMedia({audio:!1,video:{mandatory:{chromeMediaSource:"screen",minWidth:(null===(u=o.video)||void 0===u?void 0:u.width)||1280,maxWidth:(null===(l=o.video)||void 0===l?void 0:l.width)||1280,minHeight:(null===(d=o.video)||void 0===d?void 0:d.height)||720,maxHeight:(null===(p=o.video)||void 0===p?void 0:p.height)||720,minFrameRate:(null===(f=o.video)||void 0===f?void 0:f.frameRate)||5,maxFrameRate:(null===(v=o.video)||void 0===v?void 0:v.frameRate)||5}}});case 2:c=r.sent,r.next=5;break;case 3:return r.next=4,null===(m=navigator.mediaDevices)||void 0===m?void 0:m.getDisplayMedia(o);case 4:c=r.sent;case 5:return at.info("succ getDisplayMedia with",s),r.abrupt("return",c);case 6:return at.info("getUserMedia with",s,i,o),r.next=7,null===(h=navigator.mediaDevices)||void 0===h?void 0:h.getUserMedia(o);case 7:return g=r.sent,at.info("succ getUserMedia with",s),i.audio&&(this.audioPermitted=!0),i.video&&(this.videoPermitted=!0),r.abrupt("return",g);case 8:case"end":return r.stop()}},r,this)})),function(e,t){return r.apply(this,arguments)})},{key:"getDevices",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{audio:!0,video:!0},r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return new Promise(function(i,o){var s;if(null!==(s=navigator.mediaDevices)&&void 0!==s&&s.enumerateDevices){var c=!1;t.audio&&t.video?c=e.audioPermitted&&e.videoPermitted:t.audio?c=e.audioPermitted:t.video&&(c=e.videoPermitted),navigator.mediaDevices.enumerateDevices().then(function(n){var a=n.filter(function(e){return e.deviceId}),s=a.filter(function(e){return"videoinput"===e.kind}),u=a.filter(function(e){return"audioinput"===e.kind}),l=a.filter(function(e){return"audiooutput"===e.kind}),d=[];t.audio&&(d=d.concat(u,l)),t.video&&(d=d.concat(s)),0!==d.length||c||r?d.length?(t.audio&&(e.audioPermitted=!0),t.video&&(e.videoPermitted=!0),i(d)):i(d):(at.info("getUserMedia with",t),navigator.mediaDevices.getUserMedia(t).then(function(r){t.audio&&(e.audioPermitted=!0),t.video&&(e.videoPermitted=!0),r.getTracks().forEach(function(e){e.stop()}),navigator.mediaDevices.enumerateDevices().then(function(e){i(e)},o)},o)),i(a)})}else o(new n(a.BrowserNotSupported,"enumerateDevices is not supported"))})}}]);var r}();Object.defineProperty(ot,"videoPermitted",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(ot,"audioPermitted",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(ot,"_instance",{enumerable:!0,configurable:!0,writable:!0,value:new ot}),Object.defineProperty(ot,"accGetMedia",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(ot,"getPlaybackDevices",{enumerable:!0,configurable:!0,writable:!0,value:function(){return ot.getDevices({audio:!0}).then(function(e){return e.filter(function(e){return"audiooutput"===e.kind})}).catch(function(e){throw u(e)})}}),Object.defineProperty(ot,"getCameras",{enumerable:!0,configurable:!0,writable:!0,value:function(){return ot.getDevices({video:!0}).then(function(e){return at.info("getCameras",e),e.filter(function(e){return"videoinput"===e.kind}).map(function(e,t){var r={deviceId:e.deviceId,kind:e.kind,groupId:e.groupId,label:e.label||"camera ".concat(t)};return tt(tt({},r),{},{toJSON:function(){return r}})})}).catch(function(e){throw at.error("getCameras error",e),l(e)})}}),Object.defineProperty(ot,"getMicrophones",{enumerable:!0,configurable:!0,writable:!0,value:function(){return ot.getDevices({audio:!0}).then(function(e){return at.info("getMicrophones",e),e.filter(function(e){return"audioinput"===e.kind})}).catch(function(e){throw at.error("getMicrophones error",e),u(e)})}});var st,ct,ut=function(e){return{width:je[e][0],height:je[e][1]}},lt=function(t){var r,i=Object.create({}),n={};null!==(r=navigator)&&void 0!==r&&null!==(r=r.mediaDevices)&&void 0!==r&&r.getSupportedConstraints&&(n=navigator.mediaDevices.getSupportedConstraints(),console.log(n));var a=t.AEC,o=t.AGC,s=t.ANS;return t.deviceId&&(e.isSafari()?i.deviceId=t.deviceId:i.deviceId={exact:t.deviceId}),n.autoGainControl&&(i.autoGainControl={ideal:null==o||o}),n.echoCancellation&&(i.echoCancellation={ideal:null==a||a}),n.noiseSuppression&&(i.noiseSuppression={ideal:null==s||s}),i},dt=function(t){if(!p(t)||!t.audio&&!t.video)return Promise.reject(new TypeError("Invalid constrains"));var r=t.audio,i=t.video;if(!Ze(t)&&"object"===D(r)&&r.source===ve.SCREENCAST)return Promise.reject(new TypeError("Cannot share screen without video."));if(Ze(t)&&"object"===D(r)&&r.source!==ve.SCREENCAST)return Promise.reject(new TypeError("Cannot capture video from screen cast while capture audio from other source."));if(!r&&!i)return Promise.reject(new TypeError("At least one of audio and video must be requested."));var n={};if("object"===D(r)&&r.source===ve.MIC||"object"===D(r)&&r.source===ve.SCREENCAST?n.audio=lt(r):n.audio=t.audio,"object"===D(i)){var a,o=i.frameRate,c=i.deviceId,u=i.source,l=i.facingMode,d=i.displaySurface,v=i.dimension;n.video={},f(o)&&(n.video.frameRate=Math.min(i.frameRate,30)),v&&(a=ut(v)),a&&a.width&&a.height&&(u===me.SCREENCAST||e.isFirefox()?(n.video.width=a.width,n.video.height=a.height):(n.video.width={ideal:a.width,max:a.width},n.video.height={ideal:a.height,max:a.height})),s(c)&&c&&(n.video.deviceId={exact:c}),u===me.SCREENCAST&&(e.isFirefox()&&(n.video.mediaSource="screen"),d&&["browser","window","monitor"].includes(d)&&(n.video.displaySurface=d)),l&&["user","environment"].includes(l)&&(n.video.facingMode=l)}else n.video=i;return ot.getMedias(t,n)},pt=function(e){if(!e)return!1;var t=e.getVideoTracks()[0];return t&&t.enabled&&!t.muted},ft=function(e,t){var r=(e.timestamp-((null==t?void 0:t.timestamp)||e.timestamp))/1e3;return r<=0&&(r=1),r},vt=function(e,t){return null!=e?[2,4,6,0][e]:null!==t?[3,0,0,0,1,1,2][t]:void 0},mt=function(e,t){isNaN(e)&&(e=0),isNaN(t)&&(t=0);var r=e-t;return r<0&&(r=e),r},ht=function(e){var t=e.fn,r=e.times,i=e.interval,n=void 0===i?0:i,a=e.resolve,o=e.reject,s=function(){var e=C(Oe.mark(function e(){var i,s,c;return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:s=0;case 1:if(!(s<r)){e.next=7;break}return e.prev=2,e.next=3,t();case 3:return i=e.sent,null==a||a(i),e.abrupt("continue",7);case 4:if(e.prev=4,c=e.catch(2),s!==r-1){e.next=5;break}return null==o||o(c),e.abrupt("return",c);case 5:return e.next=6,gt(n);case 6:s++,e.next=1;break;case 7:return e.abrupt("return",i);case 8:case"end":return e.stop()}},e,null,[[2,4]])}));return function(){return e.apply(this,arguments)}}();return s()},gt=function(){var e=C(Oe.mark(function e(t){return Oe.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!(t>0)){e.next=1;break}return e.next=1,new Promise(function(e){setTimeout(e,t)});case 1:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}(),bt=function(e){return new Promise(function(t){d(t,1e3*e)})},yt=t().getLoggerWithPrefix("[rtc-mediaElPool]"),kt="rtc-intersecting",St="visible",Pt="invisible",wt=["abort","canplay","canplaythrough","durationchange","emptied","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","ratechange","seeked","seeking","stalled","suspend","volumechange","waiting"],Tt=function(e){return"".concat(null==e?void 0:e.getAttribute(Ne),"-").concat(null==e?void 0:e.rtcPurpose)},Mt=function(){return F(function e(t,r){var i=this;j(this,e),Object.defineProperty(this,"mediaElementCount",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"mediaElementPool",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"mediaElementsInUse",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"allElements",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),Object.defineProperty(this,"hasActivated",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"mediaKind",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"mediaPlaybackCheckInterval",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"debouncer",{enumerable:!0,configurable:!0,writable:!0,value:new v}),Object.defineProperty(this,"currentTimeOfLastCheckMap",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"observer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_activatedListener",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"destroy",{enumerable:!0,configurable:!0,writable:!0,value:function(){i.mediaElementPool.forEach(function(e){return i._resetMediaElement(e)}),i.mediaElementPool=[],i.allElements.clear(),i.mediaElementsInUse.forEach(function(e){return i._resetMediaElement(e)}),i.mediaElementsInUse=[],document.removeEventListener("click",i._onUserInteraction),document.removeEventListener("touchstart",i._onUserInteraction),document.removeEventListener("visibilitychange",i._tryReloadOnPauseAndErrorWhenVisibleTriggerByVisible),i.mediaPlaybackCheckInterval&&(m(i.mediaPlaybackCheckInterval,"interval"),i.mediaPlaybackCheckInterval=null),[].concat(Re(i.mediaElementPool),Re(i.mediaElementsInUse)).forEach(function(e){var t;return null===(t=i.observer)||void 0===t?void 0:t.unobserve(e)})}}),Object.defineProperty(this,"_tryReloadOnPauseAndErrorWhenVisible",{enumerable:!0,configurable:!0,writable:!0,value:function(e){i.mediaElementsInUse.forEach(function(t){if(t.srcObject){var r=t.srcObject;if(t.error&&(yt.debug("".concat(e,": tag=").concat(t.tagName," ").concat(Tt(t)," has error, error=").concat(t.error,", doc.visibilityState=").concat(document.visibilityState,", mediaStream="),h(r)),"visible"===document.visibilityState&&pt(r)&&t.load()),t.paused){var n=!1;if(i.hasActivated&&"video"===i.mediaKind?function(e){return e&&e.getAttribute(kt)===St}(t)&&"visible"===document.visibilityState&&"visible"===getComputedStyle(t).visibility&&(n=!0):n=!0,n){var a="".concat(e,": ").concat(Tt(t)," paused, doc.visibilityState=").concat(document.visibilityState,", intersecting=").concat(t.getAttribute(kt),", mediaStream="),o=h(r);yt.error(a,o),pt(r)&&t.load(),t.paused&&t.play().catch(function(e){console.error("inPoll",e)})}}}}),i.debouncer.debounce(i._tryReloadOnCurrentTimeFreeze.bind(i,e),1e3)}}),Object.defineProperty(this,"_tryReloadOnCurrentTimeFreeze",{enumerable:!0,configurable:!0,writable:!0,value:function(e){i.mediaElementsInUse.forEach(function(t){if(t.srcObject){var r=t.srcObject,n="video"===i.mediaKind?r.getVideoTracks()[0]:void 0;if(!t.paused&&i.currentTimeOfLastCheckMap.get(t)===t.currentTime&&"video"===i.mediaKind&&!0!==(null==n?void 0:n.muted))return yt.error("".concat(e,": tag=").concat(t.tagName," label=").concat(Tt(t),", currentTime Stop, doc.visibilityState=").concat(document.visibilityState,", curTime=").concat(t.currentTime,", mediaStream="),h(r)),void("visible"===document.visibilityState&&pt(r)&&t.load());i.currentTimeOfLastCheckMap.set(t,t.currentTime)}})}}),Object.defineProperty(this,"_tryReloadOnPauseAndErrorWhenVisibleTriggerByVisible",{enumerable:!0,configurable:!0,writable:!0,value:function(){i._tryReloadOnPauseAndErrorWhenVisible("visibilityChange")}}),Object.defineProperty(this,"_elementDefaultErrorHandler",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=e.target,r="error event on ".concat(i.mediaKind," playback, mediaStream="),n=h(null==t?void 0:t.srcObject),a=null==t?void 0:t.error;yt.error(r,n,a)}}),Object.defineProperty(this,"_elementDefaultPauseHandler",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=e.target,r="pause event on ".concat(i.mediaKind," playback, mediaStream="),n=h(null==t?void 0:t.srcObject),a=null==t?void 0:t.error;yt.debug(r,n,a)}}),Object.defineProperty(this,"_elementDefaultPlayHandler",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=e.target,r="play event on ".concat(i.mediaKind," playback, mediaStream="),n=h(null==t?void 0:t.srcObject);yt.debug(r,n)}}),Object.defineProperty(this,"_onUserInteraction",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e=[].concat(Re(i.mediaElementPool),Re(i.mediaElementsInUse));if(!i.hasActivated){i.hasActivated=!0;var t="".concat(i.mediaKind," good! media elements activated by click");if(yt.debug(t),e.forEach(function(e){e.load()}),yt.info("load all for activate"),i._activatedListener)try{i._activatedListener()}catch(e){yt.error("error occurred when exec activatedListener",g(e))}else yt.debug("ignore activatedListener for there is no one")}i._tryReloadOnPauseAndErrorWhenVisible("userInteract")}}),yt.debug("build ".concat(t," pool size"),r),this.mediaElementCount=r,this.mediaElementsInUse=[],this.mediaElementPool=[],this.mediaKind=t,window.IntersectionObserver&&(this.observer=new IntersectionObserver(function(e){e.forEach(function(e){var t,r;e.isIntersecting?null===(t=e.target)||void 0===t||t.setAttribute(kt,St):null===(r=e.target)||void 0===r||r.setAttribute(kt,Pt)})}));for(var n=1;n<=r;n++){var a=this._createElement("".concat(t,"-").concat(n));this.mediaElementPool.push(a),this.allElements.add(a)}document.addEventListener("click",this._onUserInteraction,!0),document.addEventListener("touchstart",this._onUserInteraction,!0),document.addEventListener("visibilitychange",this._tryReloadOnPauseAndErrorWhenVisibleTriggerByVisible,!0),this.mediaPlaybackCheckInterval=d(function(){i.hasActivated&&i._tryReloadOnPauseAndErrorWhenVisible("intervalCheck")},4e3,"interval")},[{key:"addAtttribute",value:function(e){if(e.autoplay=!0,e.setAttribute(Ne,"toReused"),e instanceof HTMLVideoElement)e.muted=!0,e.playsInline=!0,e.controls=!1,e.setAttribute("webkit-playsinline","true"),e.setAttribute("x5-video-player-type","h5"),e.setAttribute("x5-playsinline","true");else{var t,r=e;r.volume=1,null===(t=r.setSinkId)||void 0===t||t.call(r,"")}}},{key:"popElement",value:function(e){var t;return(t=this.mediaElementPool.shift())?yt.info("".concat(this.mediaKind," pop label=").concat(Tt(t)," for ").concat(e)):(t=this._createElement("".concat(this.mediaKind,"-").concat(++this.mediaElementCount)),yt.info("".concat(this.mediaKind," create new videoEl for no more video element in pool"))),this.mediaElementsInUse.push(t),this._resetMediaElement(t),t.addEventListener("error",this._elementDefaultErrorHandler),t.addEventListener("pause",this._elementDefaultPauseHandler),t.addEventListener("play",this._elementDefaultPlayHandler),t.rtcPurpose=e||"",t}},{key:"pushElement",value:function(e){if(this.allElements.has(e)){var t=this.mediaElementsInUse;this.mediaElementsInUse=this.mediaElementsInUse.filter(function(t){return t!==e}),t.length!==this.mediaElementsInUse.length&&(yt.debug("".concat(this.mediaKind," pushed"),Tt(e)),this.mediaElementPool.push(e),this._resetMediaElement(e))}}},{key:"isMediaElementActivated",value:function(){return this.hasActivated}},{key:"setActivateListener",value:function(e){this._activatedListener=e}},{key:"_createElement",value:function(e){var t,r=document.createElement(this.mediaKind);return null===(t=this.observer)||void 0===t||t.observe(r),this.addAtttribute(r),r.setAttribute(Ne,e),r}},{key:"_resetMediaElement",value:function(e){wt.forEach(function(t){e["on".concat(t)]=null}),e.removeEventListener("error",this._elementDefaultErrorHandler),e.removeEventListener("pause",this._elementDefaultPauseHandler),e.removeEventListener("play",this._elementDefaultPlayHandler),e.style.cssText="",e.className="",this.addAtttribute(e),e.srcObject=null}}])}(),Ot=function(){return st||At(),st},Et=function(){return ct||At(),ct};window.getAudioElementPool=Ot,window.getVideoElementPool=Et;var It=e.isIOS()||e.isAndroid()?9:25,At=function(){st||(st=new Mt("audio",2)),ct||(ct=new Mt("video",It))},Rt=t().getLoggerWithPrefix("[rtc-actx]"),_t=null,xt=function(){if(_t||(_t=new AudioContext),"running"!==_t.state){var e=setTimeout(function(){var e="timeout for resume audioContext, probably page still has no user gesture like click or touch";console.error(e),Rt.error(e)},2e3);_t.resume().finally(function(){clearTimeout(e)})}return _t},Ct=function(e){var t=e.getAudioTracks(),r=xt().createMediaStreamDestination();return t.forEach(function(e){xt().createMediaStreamSource(new MediaStream([e])).connect(r)}),r.stream.getAudioTracks()[0]},jt=function(e,t){t.connect(e),e.fftSize=2048,e.smoothingTimeConstant=.4;var r=new Float32Array(e.fftSize);if(e.getFloatTimeDomainData)e.getFloatTimeDomainData(r);else{var i=new Uint8Array(e.fftSize);e.getByteTimeDomainData(i);for(var n=0;n<r.length;++n)r[n]=i[n]/128-1}for(var a=0,o=0;o<r.length;o++)a+=r[o]*r[o];return Math.max(10*Math.log10(a/r.length)+100,0)/100},Dt=function(e){var t=document.createElement("canvas"),r=t.getContext("2d"),i=e.videoHeight,n=e.videoWidth;return t.width=n,t.height=i,r.drawImage(e,0,0,n,i),t.toDataURL("image/png")},Lt=Ot(),Nt=Et(),Ft=t().getLoggerWithPrefix("[rtc-playerMgr]"),Ut=F(function e(t,r,i,n){var a=this;j(this,e),Object.defineProperty(this,"mediaEl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"playerConfig",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"mediaWrapperEl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"track",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"snapshotMediaStream",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"canvas",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"snapshotInterval",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"checkSwitchSnapshotInterval",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"lastCheckResult",{enumerable:!0,configurable:!0,writable:!0,value:{msTrackPlayable:!1,elPlaying:!1}}),Object.defineProperty(this,"isPlayerPlaying",{enumerable:!0,configurable:!0,writable:!0,value:function(){return a.mediaEl&&a.mediaEl.currentTime>0&&!a.mediaEl.paused&&!a.mediaEl.ended&&a.mediaEl.readyState>=2}}),Object.defineProperty(this,"snapshot",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e,t,r=a.track.getMediaStreamTrack(),i="live"===(null==r?void 0:r.readyState)&&(null==r?void 0:r.enabled)&&!(null!=r&&r.muted);if(Qe._holdVideoLastFrame&&(i&&(null===(e=a.mediaEl)||void 0===e||null===(e=e.srcObject)||void 0===e||null===(t=e.getVideoTracks)||void 0===t||null===(t=t.call(e))||void 0===t?void 0:t[0])===r)){var n=a.canvas.getContext("2d");n.clearRect(0,0,a.canvas.width,a.canvas.height);var o=a.mediaEl.videoHeight,s=a.mediaEl.videoWidth;a.canvas.width===s&&a.canvas.height===o||(a.canvas.width=s,a.canvas.height=o),n.drawImage(a.mediaEl,0,0,s,o)}}}),Object.defineProperty(this,"checkSwitchSnapshot",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e,t,r,i,n,o,s=a.track.getMediaStreamTrack(),c="live"===(null==s?void 0:s.readyState)&&(null==s?void 0:s.enabled)&&!(null!=s&&s.muted);c===a.lastCheckResult.msTrackPlayable&&a.isPlayerPlaying()===a.lastCheckResult.elPlaying||Ft.info("rtcTrackId=".concat(a.track.getTrackId()," play change trackPlayable=").concat(c," isPlaying=").concat(a.isPlayerPlaying()),{msTrackReadyState:null==s?void 0:s.readyState,msTrackEnabled:null==s?void 0:s.enabled,msTrackMuted:null==s?void 0:s.muted,elCurrentTime:null===(e=a.mediaEl)||void 0===e?void 0:e.currentTime,elPaused:null===(t=a.mediaEl)||void 0===t?void 0:t.paused,elEnded:null===(r=a.mediaEl)||void 0===r?void 0:r.ended,elReadyState:null===(i=a.mediaEl)||void 0===i?void 0:i.readyState});(a.lastCheckResult={msTrackPlayable:c,elPlaying:a.isPlayerPlaying()},Qe._holdVideoLastFrame)&&(c&&(null===(n=a.mediaEl)||void 0===n||null===(n=n.srcObject)||void 0===n||null===(o=n.getVideoTracks)||void 0===o||null===(o=o.call(n))||void 0===o?void 0:o[0])!==s?a.switchOriginVideo():c||a.mediaEl.srcObject===a.snapshotMediaStream||a.switchSnapshot())}}),Object.defineProperty(this,"startCheckPlayState",{enumerable:!0,configurable:!0,writable:!0,value:function(){"video"===a.track.trackMediaType&&(Ft.info("startCheckPlayState trackid=",a.track.getTrackId()),a.snapshotInterval=setInterval(a.snapshot,300),a.checkSwitchSnapshotInterval=setInterval(a.checkSwitchSnapshot,150))}}),Object.defineProperty(this,"stopCheckPlayState",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e,t;Ft.info("stopCheckPlayState trackid=",null===(e=a.track)||void 0===e||null===(t=e.getTrackId)||void 0===t?void 0:t.call(e)),clearInterval(a.snapshotInterval),clearInterval(a.checkSwitchSnapshotInterval)}}),Object.defineProperty(this,"playVideo",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e;Ft.info("playVideo",a.track.getTrackId(),null===(e=a.mediaWrapperEl)||void 0===e?void 0:e.getAttribute(Ve)),a.mediaWrapperEl.appendChild(a.mediaEl),a.mediaEl.pause();var t=a.track.sfuStream||new MediaStream([a.track.getMediaStreamTrack()]);a.mediaEl.srcObject=t,a.mediaEl.play().catch(function(e){var t,r;"AbortError"!==e.name&&Ft.error("play video error trackid=",null===(t=a.track)||void 0===t||null===(r=t.getTrackId)||void 0===r?void 0:r.call(t),g(e))}),a.stopCheckPlayState(),a.startCheckPlayState()}}),Object.defineProperty(this,"playAudio",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e=a.track.sfuStream||new MediaStream([a.track.getMediaStreamTrack()]);a.mediaEl.srcObject=e,a.mediaEl.play().catch(function(e){var t,r;"AbortError"!==e.name&&Ft.error("play audio error trackid=",null===(t=a.track)||void 0===t||null===(r=t.getTrackId)||void 0===r?void 0:r.call(t),g(e))}),a.stopCheckPlayState(),a.startCheckPlayState()}}),Object.defineProperty(this,"stopPlay",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e,t;if(Ft.info("stopPlay",a.track.getTrackId(),null===(e=a.mediaWrapperEl)||void 0===e?void 0:e.getAttribute(Ve)),a.stopCheckPlayState(),a.mediaEl&&a.track){var r,i;if(a.mediaEl.pause(),null!==(t=a.mediaWrapperEl)&&void 0!==t&&t.contains(a.mediaEl))null===(r=a.mediaWrapperEl)||void 0===r||null===(i=r.removeChild)||void 0===i||i.call(r,a.mediaEl);a.mediaEl.srcObject=null,a.canvas=null,"audio"===a.track.trackMediaType?Lt.pushElement(a.mediaEl):Nt.pushElement(a.mediaEl)}}}),Object.defineProperty(this,"switchSnapshot",{enumerable:!0,configurable:!0,writable:!0,value:function(){Ft.info("switchSnapshot trackid",a.track.getTrackId()),a.mediaEl.srcObject=a.snapshotMediaStream,a.mediaEl.play().catch(function(e){Ft.info("snapshot play error, trackid",a.track.getTrackId(),g(e))})}}),Object.defineProperty(this,"switchOriginVideo",{enumerable:!0,configurable:!0,writable:!0,value:function(){setTimeout(function(){var e,t,r=a.track.getMediaStreamTrack();if("live"===(null==r?void 0:r.readyState)&&(null==r?void 0:r.enabled)&&!(null!=r&&r.muted)&&(null===(e=a.mediaEl)||void 0===e||null===(e=e.srcObject)||void 0===e||null===(t=e.getVideoTracks)||void 0===t||null===(t=t.call(e))||void 0===t?void 0:t[0])!==r){Ft.info("switchOriginVideo trackid",a.track.getTrackId());var i=a.track.sfuStream||new MediaStream([a.track.getMediaStreamTrack()]);a.mediaEl.srcObject=i,a.mediaEl.play().catch(function(e){Ft.info("switchOriginVideo play error, trackid",a.track.getTrackId(),g(e))})}},1e3)}}),this.mediaWrapperEl=n,this.mediaWrapperEl&&!this.mediaWrapperEl.getAttribute(Ve)&&this.mediaWrapperEl.setAttribute(Ve,"container_".concat(e.containerRtcLabelAcc++)),this.track=t,this.playerConfig=r,this.mediaEl=i,this.mediaEl.setAttribute(Ge,this.track.getTrackId()),this.canvas=document.createElement("canvas"),this.canvas.setAttribute(Ge,this.track.getTrackId()),this.snapshotMediaStream=this.canvas.captureStream(4)});Object.defineProperty(Ut,"containerRtcLabelAcc",{enumerable:!0,configurable:!0,writable:!0,value:0});var Gt=new(function(){return F(function e(){j(this,e),Object.defineProperty(this,"playControllerArr",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.playControllerArr=[]},[{key:"getElement",value:function(e){return this.playControllerArr.filter(function(t){var r;return(null===(r=t.track)||void 0===r?void 0:r.getTrackId())===e.getTrackId()}).map(function(e){return e.mediaEl})}},{key:"getPlayCtrls",value:function(e){return this.playControllerArr.filter(function(t){var r;return(null===(r=t.track)||void 0===r?void 0:r.getTrackId())===e.getTrackId()})}},{key:"play",value:function(e,t,r){var i,o=this;Ft.info("call play",e.getTrackId(),t instanceof HTMLElement?t.tagName:t,r);var s=e.getTrackId(),c=e.sfuStream||new MediaStream([e.getMediaStreamTrack()]);if("video"===e.trackMediaType){var u,l=this.findDom(t);if(!l)throw new n(a.InvaildArgument,"wrapper dom not found");var d=r||{},p=d.mirror,f=d.fit;if((i=this.playControllerArr.find(function(e){return e.mediaWrapperEl===l}))&&(null===(u=i.track)||void 0===u?void 0:u.getTrackId())!==(null==e?void 0:e.getTrackId()))return this.stopPlay(i.track,t),void this.play(e,t,r);if(i)i.mediaEl.pause(),!e.sourceMirror!=!p?i.mediaEl.style.transform="scaleX(-1)":i.mediaEl.style.transform="",f&&(i.mediaEl.style.objectFit=f),i.mediaEl.srcObject=c,i.mediaEl.play().catch(function(e){var t,r;"AbortError"!==e.name&&Ft.error("play video error trackid=",null===(t=i.track)||void 0===t||null===(r=t.getTrackId)||void 0===r?void 0:r.call(t),g(e))});else{var v,m=null===(v=this.getPlayCtrls(e))||void 0===v?void 0:v.length;if(m>3){var h,y=["DingRTC WARN: possible memory leak. More than 3 HTMLElement containers are playing the same track.","Please call track.stop to stop playing HTMLElements that will unmount in DOM.","TrackId:",e.getTrackId()];(h=console).warn.apply(h,y),Ft.info.apply(Ft,y.concat([m]))}(function(e,t){if(e.style.width="100%",e.style.height="100%",t){var r=t.mirror,i=t.fit;!0===r&&(e.style.transform="scaleX(-1)"),i&&(e.style.objectFit=i)}})((i=new Ut(e,r,Et().popElement(),l)).mediaEl,{mirror:!e.sourceMirror!=!p,fit:f}),i.playVideo(),this.playControllerArr.push(i)}}else(i=this.playControllerArr.find(function(t){var r;return(null===(r=t.track)||void 0===r?void 0:r.getTrackId())===e.getTrackId()}))?(i.mediaEl.pause(),i.mediaEl.srcObject=c,Ft.info("element loaded",e.getTrackId()),i.mediaEl.load()):((i=new Ut(e,null,Ot().popElement(),null)).playAudio(),this.playControllerArr.push(i));i.mediaEl.paused&&i.mediaEl.play().catch(function(e){"NotAllowedError"===e.name?(Ft.error("autoplay