dingrtc
Version:
dingRTC web端 sdk
3 lines • 321 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),require("webrtc-adapter");var e=require("@dingrtc/shared"),t=require("sdp-transform"),r=require("@dingrtc/channel");function i(e,t,r,i,n,o,a){try{var s=e[o](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(i,n)}function n(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var a=e.apply(t,r);function s(e){i(a,n,o,s,c,"next",e)}function c(e){i(a,n,o,s,c,"throw",e)}s(void 0)})}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e){return a="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},a(e)}function s(e){var t=function(e,t){if("object"!=a(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t);if("object"!=a(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e,"string");return"symbol"==a(t)?t:t+""}function c(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,s(i.key),i)}}function u(e,t,r){return t&&c(e.prototype,t),r&&c(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function d(e,t){if(t&&("object"==a(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 l(e){return l=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},l(e)}function p(e,t){return p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},p(e,t)}function f(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&&p(e,t)}function v(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var m,h={exports:{}},g={exports:{}};(m=g).exports=function(e,t){this.v=e,this.k=t},m.exports.__esModule=!0,m.exports.default=m.exports;var b=g.exports,y={exports:{}},k={exports:{}};!function(e){function t(r,i,n,o){var a=Object.defineProperty;try{a({},"",{})}catch(r){a=0}e.exports=t=function(e,r,i,n){function o(r,i){t(e,r,function(e){return this._invoke(r,i,e)})}r?a?a(e,r,{value:i,enumerable:!n,configurable:!n,writable:!n}):e[r]=i:(o("next",0),o("throw",1),o("return",2))},e.exports.__esModule=!0,e.exports.default=e.exports,t(r,i,n,o)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}(k);var S=k.exports;!function(e){var t=S;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,o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",s=o.toStringTag||"@@toStringTag";function c(e,r,o,a){var s=r&&r.prototype instanceof d?r:d,c=Object.create(s.prototype);return t(c,"_invoke",function(e,t,r){var o,a,s,c=0,d=r||[],l=!1,p={p:0,n:0,v:i,a:f,f:f.bind(i,4),d:function(e,t){return o=e,a=0,s=i,p.n=t,u}};function f(e,t){for(a=e,s=t,n=0;!l&&c&&!r&&n<d.length;n++){var r,o=d[n],f=p.p,v=o[2];e>3?(r=v===t)&&(s=o[(a=o[4])?5:(a=3,3)],o[4]=o[5]=i):o[0]<=f&&((r=e<2&&f<o[1])?(a=0,p.v=t,p.n=o[1]):f<v&&(r=e<3||o[0]>t||t>v)&&(o[4]=e,o[5]=t,p.n=v,a=0))}if(r||e>1)return u;throw l=!0,t}return function(r,d,v){if(c>1)throw TypeError("Generator is already running");for(l&&1===d&&f(d,v),a=d,s=v;(n=a<2?i:s)||!l;){o||(a?a<3?(a>1&&(p.n=-1),f(a,s)):p.n=s:p.v=s);try{if(c=2,o){if(a||(r="next"),n=o[r]){if(!(n=n.call(o,s)))throw TypeError("iterator result is not an object");if(!n.done)return n;s=n.value,a<2&&(a=0)}else 1===a&&(n=o.return)&&n.call(o),a<2&&(s=TypeError("The iterator does not provide a '"+r+"' method"),a=1);o=i}else if((n=(l=p.n<0)?s:e.call(t,p))!==u)break}catch(e){o=i,a=1,s=e}finally{c=1}}return{value:n,done:l}}}(e,o,a),!0),c}var u={};function d(){}function l(){}function p(){}n=Object.getPrototypeOf;var f=[][a]?n(n([][a]())):(t(n={},a,function(){return this}),n),v=p.prototype=d.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 l.prototype=p,t(v,"constructor",p),t(p,"constructor",l),l.displayName="GeneratorFunction",t(p,s,"GeneratorFunction"),t(v),t(v,s,"Generator"),t(v,a,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}(y);var P=y.exports,T={exports:{}},w={exports:{}},E={exports:{}};!function(e){var t=b,r=S;e.exports=function e(i,n){function o(e,r,a,s){try{var c=i[e](r),u=c.value;return u instanceof t?n.resolve(u.v).then(function(e){o("next",e,a,s)},function(e){o("throw",e,a,s)}):n.resolve(u).then(function(e){c.value=e,a(c)},function(e){return o("throw",e,a,s)})}catch(e){s(e)}}var a;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){o(e,r,t,i)})}return a=a?a.then(i,i):i()},!0)},e.exports.__esModule=!0,e.exports.default=e.exports}(E);var I=E.exports;!function(e){var t=P,r=I;e.exports=function(e,i,n,o,a){return new r(t().w(e,i,n,o),a||Promise)},e.exports.__esModule=!0,e.exports.default=e.exports}(w);var M=w.exports;!function(e){var t=M;e.exports=function(e,r,i,n,o){var a=t(e,r,i,n,o);return a.next().then(function(e){return e.done?e.value:a.next()})},e.exports.__esModule=!0,e.exports.default=e.exports}(T);var O=T.exports,R={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}(R);var A=R.exports,x={exports:{}},C={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}(C);var _=C.exports;!function(e){var t=_.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}(x);var D=x.exports;!function(e){var t=b,r=P,i=O,n=M,o=I,a=A,s=D;function c(){var u=r(),d=u.m(c),l=(Object.getPrototypeOf?Object.getPrototypeOf(d):d.__proto__).constructor;function p(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===l||"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,o){return t.resultName=n,r(i.d,s(e),o)},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:o,async:function(e,t,r,o,a){return(p(t)?n:i)(v(e),t,r,o,a)},keys:a,values:s}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=c,e.exports.__esModule=!0,e.exports.default=e.exports}(h);var j=(0,h.exports)(),L=j;try{regeneratorRuntime=j}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=j:Function("r","regeneratorRuntime = r")(j)}var N,V,F,U,G,B,H,q,W,Y,J,Q,K,z,$=v(L);function X(e,t,r){return(t=s(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Z(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 ee(e,t){if(e){if("string"==typeof e)return Z(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)?Z(e,t):void 0}}function te(e){return function(e){if(Array.isArray(e))return Z(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||ee(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 re(){return re="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var i=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=l(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}},re.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"}(N||(N={})),function(e){e.VP8="vp8",e.VP9="vp9",e.H264="h264",e.H265="h265",e.AV1="av1",e.AV1X="av1x"}(V||(V={})),exports.AudioSourceInfo=void 0,(F=exports.AudioSourceInfo||(exports.AudioSourceInfo={})).MIC="mic",F.SCREENCAST="screen-cast",F.MIXED="mixed",exports.VideoSourceInfo=void 0,(U=exports.VideoSourceInfo||(exports.VideoSourceInfo={})).CAMERA="camera",U.SCREENCAST="screen-cast",U.MIXED="mixed",function(e){e.PUBLISH="publish",e.SUBSCRIBE="subscribe"}(G||(G={})),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"}(B||(B={})),function(e){e[e.Native=1]="Native",e[e.Web=2]="Web",e[e.MiniProgram=3]="MiniProgram"}(H||(H={})),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"}(q||(q={})),function(e){e[e.UserKickOut=2011]="UserKickOut",e[e.UserReplaced=2012]="UserReplaced"}(W||(W={})),function(e){e[e.Idle=0]="Idle",e[e.Processing=1]="Processing",e[e.End=2]="End"}(Y||(Y={})),function(e){e[e.New=0]="New",e[e.Idle=1]="Idle",e[e.Processing=2]="Processing",e[e.Ended=3]="Ended"}(J||(J={})),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"}(Q||(Q={})),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"}(K||(K={})),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"}(z||(z={}));var ie,ne="3.9.22-beta.1",oe={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]};exports.AudioSourceState=void 0,(ie=exports.AudioSourceState||(exports.AudioSourceState={})).Playing="playing",ie.Paused="paused",ie.Stopped="stopped";var ae=ne,se=-999,ce="rtc-label";JSON.stringify({needPersonalityAudioStream:!0,outPeerConnectionNotReuse:!0}),e.Environment.browserType,e.Environment.browserVersion,e.Environment.system,e.Environment.systemVersion;var ue="onertc_state_sync",de="onertc_internal_track_event",le="rtc_sdk_el_data",pe="rtc_sdk_player_container_label",fe=e.getReporter().getLoggerWithPrefix("rtc-support"),ve=new(function(){return u(function t(){o(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.Environment.system,this.browser=e.Environment.browserType,this.browserVersion=e.Environment.browserVersion},[{key:"getSupportedCodec",value:(t=n($.mark(function t(){var r,i,n;return $.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return r={audio:[],video:[]},t.prev=1,(i=new RTCPeerConnection).addTransceiver("video",{direction:"recvonly"}),i.addTransceiver("audio",{direction:"recvonly"}),t.next=2,i.createOffer();case 2:if(n=t.sent.sdp){t.next=3;break}return t.abrupt("return",r);case 3:return i.close(),i=null,n.match(/ VP8/i)&&r.video.push("VP8"),n.match(/ VP9/i)&&r.video.push("VP9"),n.match(/ AV1/i)&&r.video.push("AV1"),n.match(/ H264/i)&&r.video.push("H264"),n.match(/ H265/i)&&r.video.push("H265"),n.match(/ opus/i)&&r.audio.push("OPUS"),n.match(/ PCMU/i)&&r.audio.push("PCMU"),n.match(/ PCMA/i)&&r.audio.push("PCMA"),n.match(/ G722/i)&&r.audio.push("G722"),t.abrupt("return",r);case 4:throw t.prev=4,t.catch(1),fe.error("get supportedCodecs failed"),new e.DingRTCError(e.ErrorCode.IceConnectionSetLocalDescFail,"get supportedCodecs failed");case 5:case"end":return t.stop()}},t,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 fe.error("checkSystemRequirements error",e),!1}var o=!1;o=e.Environment.isChrome()||e.Environment.isFirefox()?parseInt(e.Environment.browserVersion,10)>=69:e.Environment.isOpera()?parseInt(e.Environment.browserVersion,10)>=45:e.Environment.isSafari()?parseInt(e.Environment.browserVersion,10)>=11:(e.Environment.isWeixin()||e.Environment.isQQBrowser(),!0);var a=t&&o;return fe.info("checkSystemRequirements, api:",t,"browser",o),a}},{key:"isSupportScreenShare",value:function(){return!this.system.includes(e.SystemType.ANDROID)&&this.system!==e.SystemType.IOS&&(!(this.browser===e.BrowserType.SAFARI&&parseInt(this.browserVersion)<13)&&(!(this.browser===e.BrowserType.FIREFOX&&parseInt(this.browserVersion)<66)&&!!(navigator&&navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia)))}}]);var t}()),me=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.Environment.isFirefox()&&(e.Environment.isSafari()?parseInt(e.Environment.browserVersion)>=14:e.Environment.isChrome()?parseInt(e.Environment.browserVersion)>=81:!e.Environment.isAndroid()))};function he(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(he=function(){return!!e})()}var ge=e.getReporter().getLoggerWithPrefix("[rtc-config]"),be=new(function(){function t(){var e,r,i,n;return o(this,t),r=this,i=l(i=t),e=d(r,he()?Reflect.construct(i,[],l(r).constructor):i.apply(r,n)),Object.defineProperty(e,"gslb",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(e,"simulcast",{enumerable:!0,configurable:!0,writable:!0,value:me()}),Object.defineProperty(e,"audioSFU",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(e,"republish",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(e,"disableTransportCC",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(e,"preferH264CbProfile",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(e,"downlinkForbidHighProfile",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(e,"highStartBitrate",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(e,"_holdVideoLastFrame",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(e,"_consoleLogLevel",{enumerable:!0,configurable:!0,writable:!0,value:"warn"}),Object.defineProperty(e,"connectPcTimeoutMs",{enumerable:!0,configurable:!0,writable:!0,value:4e3}),e.setClientConfig({gslb:["https://gslb.dingrtc.com"]}),e}return f(t,e.EventEmitter),u(t,[{key:"setClientConfig",value:function(t){ge.info("setClientConfig",t);var r=t||{},i=r.gslb,n=r.simulcast,o=r.audioSFU,a=r.republish,s=r.disableTransportCC,c=r.highStartBitrate;"string"==typeof i&&(this.gslb=[i],e.setGslb(i)),Array.isArray(i)&&e.isString(i[0])&&(this.gslb=i,e.setGslb(i[0])),null!=n&&me()&&(this.simulcast=Boolean(n)),null!=o&&(this.audioSFU=Boolean(o)),null!=s&&(this.disableTransportCC=Boolean(s)),null!=a&&(this.republish=Boolean(a)),null!=c&&(this.highStartBitrate=!!c),null!=t&&t._consoleLogLevel&&(this._consoleLogLevel=null==t?void 0:t._consoleLogLevel),"boolean"==typeof(null==t?void 0:t.preferH264CbProfile)&&(this.preferH264CbProfile=t.preferH264CbProfile),(null==t?void 0:t.connectPcTimeoutMs)>=0&&t.connectPcTimeoutMs<=Number.MAX_SAFE_INTEGER?this.connectPcTimeoutMs=t.connectPcTimeoutMs:void 0!==(null==t?void 0:t.connectPcTimeoutMs)&&null!==(null==t?void 0:t.connectPcTimeoutMs)&&console.error("connectPcTimeoutMs should be a non-negative number")}}])}()),ye=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,o=r.parameters;return null!=o&&o.resolution&&i.push(o.resolution),null!=n&&null!==(t=n.parameters)&&void 0!==t&&null!==(t=t.resolution)&&void 0!==t&&t.length&&i.push.apply(i,te(n.parameters.resolution)),i.sort(ye),i},Se=function(t,r){var i,n=t.media,o=n.audio,a=n.video;if(r===Q.QuotaLimit)return i=new e.DingRTCError(e.ErrorCode.QuotaLimitExceed);if(o)i=new e.DingRTCError(e.ErrorCode.SubscribeAudioStreamFailed,r);else if(a){var s=a.source;s===exports.VideoSourceInfo.CAMERA?i=new e.DingRTCError(e.ErrorCode.SubscribeVideoStreamFailed,r):s===exports.VideoSourceInfo.SCREENCAST&&(i=new e.DingRTCError(e.ErrorCode.SubscribeScreenShareFailed,r))}return i},Pe=function(t,r){var i,n=t.trackMediaType;if(r===Q.QuotaLimit)return i=new e.DingRTCError(e.ErrorCode.QuotaLimitExceed);if("audio"===n)i=new e.DingRTCError(e.ErrorCode.PublishAudioStreamFailed,r);else{var o=t.source;o===exports.VideoSourceInfo.CAMERA?i=new e.DingRTCError(e.ErrorCode.PublishVideoStreamFailed,r):o===exports.VideoSourceInfo.SCREENCAST&&(i=new e.DingRTCError(e.ErrorCode.PublishScreenShareFailed,r))}return i},Te=function(e,t,r,i){var n=i,o=e.getVideoTracks(),a=e.getAudioTracks();return"audio"===t&&a.length?be.audioSFU?i?i.replaceStream(e):n=new vr(null,r,e):i?i.replaceTrack(a[0]):n=new vr(a[0],r):"video"===t&&o.length&&(i?i.replaceTrack(o[0]):n=new mr(o[0],r)),n},we=function(e){return"object"===a(e.video)&&e.video.source===exports.VideoSourceInfo.SCREENCAST};function Ee(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 Ie(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Ee(Object(r),!0).forEach(function(t){X(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ee(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function Me(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 Oe(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)?Oe(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 o,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw o}}}}function Oe(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 Re(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Re=function(){return!!e})()}var Ae=e.getReporter().getLoggerWithPrefix("[rtc-device]"),xe=function(){function t(){var e,r,i,a,s;return o(this,t),r=this,i=l(i=t),e=d(r,Re()?Reflect.construct(i,[],l(r).constructor):i.apply(r,a)),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:(s=n($.mark(function r(){var i;return $.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 s.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}),o=e.deviceList.filter(function(e){return e.kind===r}),a=n.map(function(e){return e.deviceId}),s=o.map(function(e){return e.deviceId}),c=n.filter(function(e){var t=e.deviceId;return!s.includes(t)}),u=o.filter(function(e){var t=e.deviceId;return!a.includes(t)}),d={audioinput:"microphone-changed",audiooutput:"playback-device-changed",videoinput:"camera-changed"},l=Me(c);try{for(l.s();!(i=l.n()).done;){var p=i.value;e.emit(d[r],{device:p,state:"active"})}}catch(e){l.e(e)}finally{l.f()}var f,v=Me(u);try{for(v.s();!(f=v.n()).done;){var m=f.value;e.emit(d[r],{device:m,state:"inactive"})}}catch(e){v.e(e)}finally{v.f()}}}),t._instance?d(e,t._instance):(e.deviceList=[],ve.checkSupported()?(t.getDevices({audio:!0,video:!0},!0).then(function(t){e.deviceList=t,e.addEventListeners()}),e):d(e))}return f(t,e.EventEmitter),u(t,[{key:"addEventListeners",value:function(){"ondevicechange"in navigator.mediaDevices?navigator.mediaDevices.addEventListener("devicechange",this.checkDeviceUpdate):e.addTimer(this.checkDeviceUpdate,1e3,"interval")}}],[{key:"getInstance",value:function(){return t._instance}},{key:"getMedias",value:(r=n($.mark(function r(i,n){var o,a,s,c,u,d,l,p,f,v,m;return $.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:if(t.accGetMedia++,o=t.accGetMedia,!we(i)){r.next=6;break}if(Ae.info("getDisplayMedia with",o,i,n),!e.Environment.isElectron()){r.next=3;break}if(n.video){r.next=1;break}throw new e.DingRTCError(e.ErrorCode.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===(s=n.video)||void 0===s?void 0:s.width)||1280,maxWidth:(null===(c=n.video)||void 0===c?void 0:c.width)||1280,minHeight:(null===(u=n.video)||void 0===u?void 0:u.height)||720,maxHeight:(null===(d=n.video)||void 0===d?void 0:d.height)||720,minFrameRate:(null===(l=n.video)||void 0===l?void 0:l.frameRate)||5,maxFrameRate:(null===(p=n.video)||void 0===p?void 0:p.frameRate)||5}}});case 2:a=r.sent,r.next=5;break;case 3:return r.next=4,null===(f=navigator.mediaDevices)||void 0===f?void 0:f.getDisplayMedia(n);case 4:a=r.sent;case 5:return Ae.info("succ getDisplayMedia with",o),r.abrupt("return",a);case 6:return Ae.info("getUserMedia with",o,i,n),r.next=7,null===(v=navigator.mediaDevices)||void 0===v?void 0:v.getUserMedia(n);case 7:return m=r.sent,Ae.info("succ getUserMedia with",o),i.audio&&(this.audioPermitted=!0),i.video&&(this.videoPermitted=!0),r.abrupt("return",m);case 8:case"end":return r.stop()}},r,this)})),function(e,t){return r.apply(this,arguments)})},{key:"getDevices",value:function(){var t=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{audio:!0,video:!0},i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return new Promise(function(n,o){var a;if(null!==(a=navigator.mediaDevices)&&void 0!==a&&a.enumerateDevices){var s=!1;r.audio&&r.video?s=t.audioPermitted&&t.videoPermitted:r.audio?s=t.audioPermitted:r.video&&(s=t.videoPermitted),navigator.mediaDevices.enumerateDevices().then(function(e){var a=e.filter(function(e){return e.deviceId}),c=a.filter(function(e){return"videoinput"===e.kind}),u=a.filter(function(e){return"audioinput"===e.kind}),d=a.filter(function(e){return"audiooutput"===e.kind}),l=[];r.audio&&(l=l.concat(u,d)),r.video&&(l=l.concat(c)),0!==l.length||s||i?l.length?(r.audio&&(t.audioPermitted=!0),r.video&&(t.videoPermitted=!0),n(l)):n(l):(Ae.info("getUserMedia with",r),navigator.mediaDevices.getUserMedia(r).then(function(e){r.audio&&(t.audioPermitted=!0),r.video&&(t.videoPermitted=!0),e.getTracks().forEach(function(e){e.stop()}),navigator.mediaDevices.enumerateDevices().then(function(e){n(e)},o)},o)),n(a)})}else o(new e.DingRTCError(e.ErrorCode.BrowserNotSupported,"enumerateDevices is not supported"))})}}]);var r}();Object.defineProperty(xe,"videoPermitted",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(xe,"audioPermitted",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(xe,"_instance",{enumerable:!0,configurable:!0,writable:!0,value:new xe}),Object.defineProperty(xe,"accGetMedia",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(xe,"getPlaybackDevices",{enumerable:!0,configurable:!0,writable:!0,value:function(){return xe.getDevices({audio:!0}).then(function(e){return e.filter(function(e){return"audiooutput"===e.kind})}).catch(function(t){throw e.parseAudioDeviceError(t)})}}),Object.defineProperty(xe,"getCameras",{enumerable:!0,configurable:!0,writable:!0,value:function(){return xe.getDevices({video:!0}).then(function(e){return Ae.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 Ie(Ie({},r),{},{toJSON:function(){return r}})})}).catch(function(t){throw Ae.error("getCameras error",t),e.parseVideoDeviceError(t)})}}),Object.defineProperty(xe,"getMicrophones",{enumerable:!0,configurable:!0,writable:!0,value:function(){return xe.getDevices({audio:!0}).then(function(e){return Ae.info("getMicrophones",e),e.filter(function(e){return"audioinput"===e.kind})}).catch(function(t){throw Ae.error("getMicrophones error",t),e.parseAudioDeviceError(t)})}});var Ce,_e,De=function(e){return{width:oe[e][0],height:oe[e][1]}},je=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 o=t.AEC,a=t.AGC,s=t.ANS;return t.deviceId&&(e.Environment.isSafari()?i.deviceId=t.deviceId:i.deviceId={exact:t.deviceId}),n.autoGainControl&&(i.autoGainControl={ideal:null==a||a}),n.echoCancellation&&(i.echoCancellation={ideal:null==o||o}),n.noiseSuppression&&(i.noiseSuppression={ideal:null==s||s}),i},Le=function(t){if(!e.isObject(t)||!t.audio&&!t.video)return Promise.reject(new TypeError("Invalid constrains"));var r=t.audio,i=t.video;if(!we(t)&&"object"===a(r)&&r.source===exports.AudioSourceInfo.SCREENCAST)return Promise.reject(new TypeError("Cannot share screen without video."));if(we(t)&&"object"===a(r)&&r.source!==exports.AudioSourceInfo.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"===a(r)&&r.source===exports.AudioSourceInfo.MIC||"object"===a(r)&&r.source===exports.AudioSourceInfo.SCREENCAST?n.audio=je(r):n.audio=t.audio,"object"===a(i)){var o,s=i.frameRate,c=i.deviceId,u=i.source,d=i.facingMode,l=i.displaySurface,p=i.dimension;n.video={},e.isNumber(s)&&(n.video.frameRate=Math.min(i.frameRate,30)),p&&(o=De(p)),o&&o.width&&o.height&&(u===exports.VideoSourceInfo.SCREENCAST||e.Environment.isFirefox()?(n.video.width=o.width,n.video.height=o.height):(n.video.width={ideal:o.width,max:o.width},n.video.height={ideal:o.height,max:o.height})),e.isString(c)&&c&&(n.video.deviceId={exact:c}),u===exports.VideoSourceInfo.SCREENCAST&&(e.Environment.isFirefox()&&(n.video.mediaSource="screen"),l&&["browser","window","monitor"].includes(l)&&(n.video.displaySurface=l)),d&&["user","environment"].includes(d)&&(n.video.facingMode=d)}else n.video=i;return xe.getMedias(t,n)},Ne=function(e){if(!e)return!1;var t=e.getVideoTracks()[0];return t&&t.enabled&&!t.muted},Ve=function(e,t){var r=(e.timestamp-((null==t?void 0:t.timestamp)||e.timestamp))/1e3;return r<=0&&(r=1),r},Fe=function(e,t){return null!=e?[2,4,6,0][e]:null!==t?[3,0,0,0,1,1,2][t]:void 0},Ue=function(e,t){isNaN(e)&&(e=0),isNaN(t)&&(t=0);var r=e-t;return r<0&&(r=e),r},Ge=function(e){var t=e.fn,r=e.times,i=e.interval,o=void 0===i?0:i,a=e.resolve,s=e.reject,c=function(){var e=n($.mark(function e(){var i,n,c;return $.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:n=0;case 1:if(!(n<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),n!==r-1){e.next=5;break}return null==s||s(c),e.abrupt("return",c);case 5:return e.next=6,Be(o);case 6:n++,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 c()},Be=function(){var e=n($.mark(function e(t){return $.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)}}(),He=function(t){return new Promise(function(r){e.addTimer(r,1e3*t)})},qe=e.getReporter().getLoggerWithPrefix("[rtc-mediaElPool]"),We="rtc-intersecting",Ye="visible",Je="invisible",Qe=["abort","canplay","canplaythrough","durationchange","emptied","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","ratechange","seeked","seeking","stalled","suspend","volumechange","waiting"],Ke=function(e){return"".concat(null==e?void 0:e.getAttribute(ce),"-").concat(null==e?void 0:e.rtcPurpose)},ze=function(){return u(function t(r,i){var n=this;o(this,t),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 e.Debouncer}),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(){n.mediaElementPool.forEach(function(e){return n._resetMediaElement(e)}),n.mediaElementPool=[],n.allElements.clear(),n.mediaElementsInUse.forEach(function(e){return n._resetMediaElement(e)}),n.mediaElementsInUse=[],document.removeEventListener("click",n._onUserInteraction),document.removeEventListener("touchstart",n._onUserInteraction),document.removeEventListener("visibilitychange",n._tryReloadOnPauseAndErrorWhenVisibleTriggerByVisible),n.mediaPlaybackCheckInterval&&(e.removeTimer(n.mediaPlaybackCheckInterval,"interval"),n.mediaPlaybackCheckInterval=null),[].concat(te(n.mediaElementPool),te(n.mediaElementsInUse)).forEach(function(e){var t;return null===(t=n.observer)||void 0===t?void 0:t.unobserve(e)})}}),Object.defineProperty(this,"_tryReloadOnPauseAndErrorWhenVisible",{enumerable:!0,configurable:!0,writable:!0,value:function(t){n.mediaElementsInUse.forEach(function(r){if(r.srcObject){var i=r.srcObject;if(r.error&&(qe.debug("".concat(t,": tag=").concat(r.tagName," ").concat(Ke(r)," has error, error=").concat(r.error,", doc.visibilityState=").concat(document.visibilityState,", mediaStream="),e.getPlainMediaStreamInfo(i)),"visible"===document.visibilityState&&Ne(i)&&r.load()),r.paused){var o=!1;if(n.hasActivated&&"video"===n.mediaKind?function(e){return e&&e.getAttribute(We)===Ye}(r)&&"visible"===document.visibilityState&&"visible"===getComputedStyle(r).visibility&&(o=!0):o=!0,o){var a="".concat(t,": ").concat(Ke(r)," paused, doc.visibilityState=").concat(document.visibilityState,", intersecting=").concat(r.getAttribute(We),", mediaStream="),s=e.getPlainMediaStreamInfo(i);qe.error(a,s),Ne(i)&&r.load(),r.paused&&r.play().catch(function(e){console.error("inPoll",e)})}}}}),n.debouncer.debounce(n._tryReloadOnCurrentTimeFreeze.bind(n,t),1e3)}}),Object.defineProperty(this,"_tryReloadOnCurrentTimeFreeze",{enumerable:!0,configurable:!0,writable:!0,value:function(t){n.mediaElementsInUse.forEach(function(r){if(r.srcObject){var i=r.srcObject,o="video"===n.mediaKind?i.getVideoTracks()[0]:void 0;if(!r.paused&&n.currentTimeOfLastCheckMap.get(r)===r.currentTime&&"video"===n.mediaKind&&!0!==(null==o?void 0:o.muted))return qe.error("".concat(t,": tag=").concat(r.tagName," label=").concat(Ke(r),", currentTime Stop, doc.visibilityState=").concat(document.visibilityState,", curTime=").concat(r.currentTime,", mediaStream="),e.getPlainMediaStreamInfo(i)),void("visible"===document.visibilityState&&Ne(i)&&r.load());n.currentTimeOfLastCheckMap.set(r,r.currentTime)}})}}),Object.defineProperty(this,"_tryReloadOnPauseAndErrorWhenVisibleTriggerByVisible",{enumerable:!0,configurable:!0,writable:!0,value:function(){n._tryReloadOnPauseAndErrorWhenVisible("visibilityChange")}}),Object.defineProperty(this,"_elementDefaultErrorHandler",{enumerable:!0,configurable:!0,writable:!0,value:function(t){var r=t.target,i="error event on ".concat(n.mediaKind," playback, mediaStream="),o=e.getPlainMediaStreamInfo(null==r?void 0:r.srcObject),a=null==r?void 0:r.error;qe.error(i,o,a)}}),Object.defineProperty(this,"_elementDefaultPauseHandler",{enumerable:!0,configurable:!0,writable:!0,value:function(t){var r=t.target,i="pause event on ".concat(n.mediaKind," playback, mediaStream="),o=e.getPlainMediaStreamInfo(null==r?void 0:r.srcObject),a=null==r?void 0:r.error;qe.debug(i,o,a)}}),Object.defineProperty(this,"_elementDefaultPlayHandler",{enumerable:!0,configurable:!0,writable:!0,value:function(t){var r=t.target,i="play event on ".concat(n.mediaKind," playback, mediaStream="),o=e.getPlainMediaStreamInfo(null==r?void 0:r.srcObject);qe.debug(i,o)}}),Object.defineProperty(this,"_onUserInteraction",{enumerable:!0,configurable:!0,writable:!0,value:function(){var t=[].concat(te(n.mediaElementPool),te(n.mediaElementsInUse));if(!n.hasActivated){n.hasActivated=!0;var r="".concat(n.mediaKind," good! media elements activated by click");if(qe.debug(r),t.forEach(function(e){e.load()}),qe.info("load all for activate"),n._activatedListener)try{n._activatedListener()}catch(t){qe.error("error occurred when exec activatedListener",e.tryJsonStringify(t))}else qe.debug("ignore activatedListener for there is no one")}n._tryReloadOnPauseAndErrorWhenVisible("userInteract")}}),qe.debug("build ".concat(r," pool size"),i),this.mediaElementCount=i,this.mediaElementsInUse=[],this.mediaElementPool=[],this.mediaKind=r,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(We,Ye):null===(r=e.target)||void 0===r||r.setAttribute(We,Je)})}));for(var a=1;a<=i;a++){var s=this._createElement("".concat(r,"-").concat(a));this.mediaElementPool.push(s),this.allElements.add(s)}document.addEventListener("click",this._onUserInteraction,!0),document.addEventListener("touchstart",this._onUserInteraction,!0),document.addEventListener("visibilitychange",this._tryReloadOnPauseAndErrorWhenVisibleTriggerByVisible,!0),this.mediaPlaybackCheckInterval=e.addTimer(function(){n.hasActivated&&n._tryReloadOnPauseAndErrorWhenVisible("intervalCheck")},4e3,"interval")},[{key:"addAtttribute",value:function(e){if(e.autoplay=!0,e.setAttribute(ce,"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())?qe.info("".concat(this.mediaKind," pop label=").concat(Ke(t)," for ").concat(e)):(t=this._createElement("".concat(this.mediaKind,"-").concat(++this.mediaElementCount)),qe.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&&(qe.debug("".concat(this.mediaKind," pushed"),Ke(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(ce,e),r}},{key:"_resetMediaElement",value:function(e){Qe.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}}])}(),$e=function(){return Ce||et(),Ce},Xe=function(){return _e||et(),_e};window.getAudioElementPool=$e,window.getVideoElementPool=Xe;var Ze=e.Environment.isIOS()||e.Environment.isAndroid()?9:25,et=function(){Ce||(Ce=new ze("audio",2)),_e||(_e=new ze("video",Ze))},tt=e.getReporter().getLoggerWithPrefix("[rtc-actx]"),rt=null,it=function(){if(rt||(rt=new AudioContext),"running"!==rt.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),tt.error(e)},2e3);rt.resume().finally(function(){clearTimeout(e)})}return rt},nt=function(e){var t=e.getAudioTracks(),r=it().createMediaStreamDestination();return t.forEach(function(e){it().createMediaStreamSource(new MediaStream([e])).connect(r)}),r.stream.getAudioTracks()[0]},ot=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 o=0,a=0;a<r.length;a++)o+=r[a]*r[a];return Math.max(10*Math.log10(o/r.length)+100,0)/100},at=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")},st=$e(),ct=Xe(),ut=e.getReporter().getLoggerWithPrefix("[rtc-playerMgr]"),dt=u(function t(r,i,n,a){var s=this;o(this,t),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 s.mediaEl&&s.mediaEl.currentTime>0&&!s.mediaEl.paused&&!s.mediaEl.ended&&s.mediaEl.readyState>=2}}),Object.defineProperty(this,"snapshot",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e,t,r=s.track.getMediaStreamTrack(),i="live"===(null==r?void 0:r.readyState)&&(null==r?void 0:r.enabled)&&!(null!=r&&r.muted);if(be._holdVideoLastFrame&&(i&&(null===(e=s.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=s.canvas.getContext("2d");n.clearRect(0,0,s.canvas.width,s.canvas.height);var o=s.mediaEl.videoHeight,a=s.mediaEl.videoWidth;s.canvas.width===a&&s.canvas.height===o||(s.canvas.width=a,s.canvas.height=o),n.drawImage(s.mediaEl,0,0,a,o)}}}),Object.defineProperty(this,"checkSwitchSnapshot",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e,t,r,i,n,o,a=s.track.getMediaStreamTrack(),c="live"===(null==a?void 0:a.readyState)&&(null==a?void 0:a.enabled)&&!(null!=a&&a.muted);c===s.lastCheckResult.msTrackPlayable&&s.isPlayerPlaying()===s.lastCheckResult.elPlaying||ut.info("rtcTrackId=".concat(s.track.getTrackId()," play change trackPlayable=").concat(c," isPlaying=").concat(s.isPlayerPlaying()),{msTrackReadyState:null==a?void 0:a.readyState,msTrackEnabled:null==a?void 0:a.enabled,msTrackMuted:null==a?void 0:a.muted,elCurrentTime:null===(e=s.mediaEl)||void 0===e?void 0:e.currentTime,elPaused:null===(t=s.mediaEl)||void 0===t?void 0:t.paused,elEnded:null===(r=s.mediaEl)||void 0===r?void 0:r.ended,elReadyState:null===(i=s.mediaEl)||void 0===i?void 0:i.readyState});(s.lastCheckResult={msTrackPlayable:c,elPlaying:s.isPlayerPlaying()},be._holdVideoLastFrame)&&(c&&(null===(n=s.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])!==a?s.switchOriginVideo():c||s.mediaEl.srcObject===s.snapshotMediaStream||s.switchSnapshot())}}),Object.defineProperty(this,"startCheckPlayState",{enumerable:!0,configurable:!0,writable:!0,value:function(){"video"===s.track.trackMediaType&&(ut.info("startCheckPlayState trackid=",s.track.getTrackId()),s.snapshotInterval=setInterval(s.snapshot,300),s.checkSwitchSnapshotInterval=setInterval(s.checkSwitchSnapshot,150))}}),Object.defineProperty(this,"stopCheckPlayState",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e,t;ut.info("stopCheckPlayState trackid=",null===(e=s.track)||void 0===e||null===(t=e.getTrackId)||void 0===t?void 0:t.call(e)),clearInterval(s.snapshotInterval),clearInterval(s.checkSwitchSnapshotInterval)}}),Object.defineProperty(this,"playVideo",{enumerable:!0,configurable:!0,writable:!0,value:function(){var t;ut.info("playVideo",s.track.getTrackId(),null===(t=s.mediaWrapperEl)||void 0===t?void 0:t.getAttribute(pe)),s.mediaWrapperEl.appendChild(s.mediaEl),s.mediaEl.pause();var r=s.track.sfuStream||new MediaStream([s.track.getMediaStreamTrack()]);s.mediaEl.srcObject=r,s.mediaEl.play().catch(function(t){var r,i;"AbortError"!==t.name&&ut.error("play video error trackid=",null===(r=s.track)||void 0===r||null===(i=r.getTrackId)||void 0===i?void 0:i.call(r),e.tryJsonStringify(t))}),s.stopCheckPlayState(),s.startCheckPlayState()}}),Object.defineProperty(this,"playAudio",{enumerable:!0,configurable:!0,writable:!0,value:function(){var t=s.track.sfuStream||new MediaStream([s.track.getMediaStreamTrack()]);s.mediaEl.srcObject=t,s.mediaEl.play().catch(function(t){var r,i;"AbortError"!==t.name&&ut.error("play audio error trackid=",null===(r=s.track)||void 0===r||null===(i=r.getTrackId)||void 0===i?void 0:i.call(r),e.tryJsonStringify(t))}),s.stopCheckPlayState(),s.startCheckPlayState()}}),Object.defineProperty(this,"stopPlay",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e,t;if(ut.info("stopPlay",s.track.getTrackId(),null===(e=s.mediaWrapperEl)||void 0===e?void 0:e.getAttribute(pe)),s.stopCheckPlayState(),s.mediaEl&&s.track){var r,i;if(s.mediaEl.pause(),null!==(t=s.mediaWrapperEl)&&void 0!==t&&t.contains(s.mediaEl))null===(r=s.mediaWrapperEl)||void 0===r||null===(i=r.removeChild)||void 0===i||i.call(r,s.mediaEl);s.mediaEl.srcObject=null,s.canvas=null,"audio"===s.track.trackMediaType?st.pushElement(s.mediaEl):ct.pushElement(s.mediaEl)}}}),Object.defineProperty(this,"switchSnapshot",{enumerable:!0,configurable:!0,writable:!0,value:function(){ut.info("switchSnapshot trackid",s.track.getTrackId()),s.mediaEl.srcObject=s.snapshotMediaStream,s.mediaEl.play().catch(function(t){ut.info("snapshot play error, trackid",s.track.getTrackId(),e.tryJsonStringify(t))})}}),Object.defineProperty(this,"switchOriginVideo",{enumerable:!0,configurable:!0,writable:!0,value:function(){setTimeout(function(){var t,r,i=s.track.getMediaStreamTrack();if("live"===(null==i?void 0:i.readyState)&&(null==i?void 0:i.enabled)&&!(null!=i&&i.muted)&&(null===(t=s.mediaEl)||void 0===t||null===(t=t.srcObject)||void 0===t||null===(r=t.getVideoTracks)||void 0===r||null===(r=r.call(t))||void 0===r?void 0:r[0])!==i){ut.info("switchOriginVideo trackid",s.track.getTrackId());var n=s.track.sfuStream||new MediaStream([s.track.getMediaStreamTrack()]);s.mediaEl.srcObject=n,s.mediaEl.play().catch(function(t){ut.info("switchOriginVideo play error, trackid",s.track.getTrackId(),e.tryJsonStringify(t))})}},1e3)}}),this.mediaWrapperEl=a,this.mediaWrapperEl&&!this.mediaWrapperEl.getAttribute(pe)&&this.mediaWrapperEl.setAttribute(pe,"container_".concat(t.containerRtcLabelAcc++)),this.track=r,this.playerConfig=i,this.mediaEl=n,this.mediaEl.setAttribute(le,this.track.getTrackId()),this.canvas=document.createElement("canvas"),this.canvas.setAttribute(le,this.track.getTrackId()),this.snapshotMediaStream=this.canvas.captureStream(4)});Object.defineProperty(dt,"containerRtcLabelAcc",{enumerable:!0,configurable:!0,writable:!0,value:0});var lt=new(function(){return u(function e(){o(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(t,r,i){var n,o=this;ut.info("call play",t.getTrackId(),r instanceof HTMLElement?r.tagName:r,i);var a=t.getTrackId(),s=t.sfuStream||new MediaStream([t.getMediaStreamTrack()]);if("video"===t.trackMediaType){var c,u=this.findDom(r);if(!u)throw new e.DingRTCError(e.ErrorCode.InvaildArgument,"wrapper dom not found");var d=i||{},l=d.mirror,p=d.fit;if((n=this.playControllerArr.find(function(e){return e.mediaWrapperEl===u}))&&(null===(c=n.track)||void 0===c?void 0:c.getTrackId())!==(null==t?void 0:t.getTrackId()))return this.stopPlay(n.track,r),void this.play(t,r,i);if(n)n.mediaEl.pause(),!t.sourceMirror!=!l?n.mediaEl.style.transform="scaleX(-1)":n.mediaEl.style.transform="",p&&(n.mediaEl.style.objectFit=p),n.mediaEl.srcObject=s,n.mediaEl.play().catch(function(t){var r,i;"AbortError"!==t.name&&ut.error("play video error trackid=",null===(r=n.track)||void 0===r||null===(i=r.getTrackId)||void 0===i?void 0:i.call(r),e.tryJsonStringify(t))});else{var f,v=null===(f=this.getPlayCtrls(t))||void 0===f?void 0:f.length;if(v>3){var m,h=["DingRTC WARN: