jiuyiUniapp/jiuyi/node_modules/trtc-sdk-v5/trtc.esm.js

95 lines
524 KiB
JavaScript
Raw Normal View History

2024-12-18 15:46:27 +08:00
var Dh=Object.create;var jr=Object.defineProperty,Oh=Object.defineProperties,Ud=Object.getOwnPropertyDescriptor,Mh=Object.getOwnPropertyDescriptors,kh=Object.getOwnPropertyNames,mn=Object.getOwnPropertySymbols,Bd=Object.getPrototypeOf,na=Object.prototype.hasOwnProperty,$d=Object.prototype.propertyIsEnumerable,Lh=Reflect.get;var qr=Math.pow,sa=(r,i,e)=>i in r?jr(r,i,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[i]=e,v=(r,i)=>{for(var e in i||(i={}))na.call(i,e)&&sa(r,e,i[e]);if(mn)for(var e of mn(i))$d.call(i,e)&&sa(r,e,i[e]);return r},w=(r,i)=>Oh(r,Mh(i));var Fd=(r,i)=>{var e={};for(var t in r)na.call(r,t)&&i.indexOf(t)<0&&(e[t]=r[t]);if(r!=null&&mn)for(var t of mn(r))i.indexOf(t)<0&&$d.call(r,t)&&(e[t]=r[t]);return e};var Wt=(r,i)=>()=>(i||r((i={exports:{}}).exports,i),i.exports),Xr=(r,i)=>{for(var e in i)jr(r,e,{get:i[e],enumerable:!0})},xh=(r,i,e,t)=>{if(i&&typeof i=="object"||typeof i=="function")for(let s of kh(i))!na.call(r,s)&&s!==e&&jr(r,s,{get:()=>i[s],enumerable:!(t=Ud(i,s))||t.enumerable});return r};var Se=(r,i,e)=>(e=r!=null?Dh(Bd(r)):{},xh(i||!r||!r.__esModule?jr(e,"default",{value:r,enumerable:!0}):e,r));var y=(r,i,e,t)=>{for(var s=t>1?void 0:t?Ud(i,e):i,n=r.length-1,o;n>=0;n--)(o=r[n])&&(s=(t?o(i,e,s):o(s))||s);return t&&s&&jr(i,e,s),s};var u=(r,i,e)=>(sa(r,typeof i!="symbol"?i+"":i,e),e);var Ie=(r,i,e)=>Lh(Bd(r),e,i);var f=(r,i,e)=>new Promise((t,s)=>{var n=c=>{try{a(e.next(c))}catch(d){s(d)}},o=c=>{try{a(e.throw(c))}catch(d){s(d)}},a=c=>c.done?t(c.value):Promise.resolve(c.value).then(n,o);a((e=e.apply(r,i)).next())});var Ne=Wt((qf,oa)=>{"use strict";var Ph=Object.prototype.hasOwnProperty,xe="~";function Qr(){}Object.create&&(Qr.prototype=Object.create(null),new Qr().__proto__||(xe=!1));function wh(r,i,e){this.fn=r,this.context=i,this.once=e||!1}function Hd(r,i,e,t,s){if(typeof e!="function")throw new TypeError("The listener must be a function");var n=new wh(e,t||r,s),o=xe?xe+i:i;return r._events[o]?r._events[o].fn?r._events[o]=[r._events[o],n]:r._events[o].push(n):(r._events[o]=n,r._eventsCount++),r}function pn(r,i){--r._eventsCount===0?r._events=new Qr:delete r._events[i]}function be(){this._events=new Qr,this._eventsCount=0}be.prototype.eventNames=function(){var i=[],e,t;if(this._eventsCount===0)return i;for(t in e=this._events)Ph.call(e,t)&&i.push(xe?t.slice(1):t);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i};be.prototype.listeners=function(i){var e=xe?xe+i:i,t=this._events[e];if(!t)return[];if(t.fn)return[t.fn];for(var s=0,n=t.length,o=new Array(n);s<n;s++)o[s]=t[s].fn;return o};be.prototype.listenerCount=function(i){var e=xe?xe+i:i,t=this._events[e];return t?t.fn?1:t.length:0};be.prototype.emit=function(i,e,t,s,n,o){var a=xe?xe+i:i;if(!this._events[a])return!1;var c=this._events[a],d=arguments.length,l,m;if(c.fn){switch(c.once&&this.removeListener(i,c.fn,void 0,!0),d){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,e),!0;case 3:return c.fn.call(c.context,e,t),!0;case 4:return c.fn.call(c.context,e,t,s),!0;case 5:return c.fn.call(c.context,e,t,s,n),!0;case 6:return c.fn.call(c.context,e,t,s,n,o),!0}for(m=1,l=new Array(d-1);m<d;m++)l[m-1]=arguments[m];c.fn.apply(c.context,l)}else{var p=c.length,_;for(m=0;m<p;m++)switch(c[m].once&&this.removeListener(i,c[m].fn,void 0,!0),d){case 1:c[m].fn.call(c[m].context);break;case 2:c[m].fn.call(c[m].context,e);break;case 3:c[m].fn.call(c[m].context,e,t);break;case 4:c[m].fn.call(c[m].context,e,t,s);break;default:if(!l)for(_=1,l=new Array(d-1);_<d;_++)l[_-1]=arguments[_];c[m].fn.apply(c[m].context,l)}}return!0};be.prototype.on=function(i,e,t){return Hd(this,i,e,t,!1)};be.prototype.once=function(i,e,t){return Hd(this,i,e,t,!0)};be.prototype.removeListener=function(i,e,t,s){var n=xe?xe+i:i;if(!this._events[n])return this;if(!e)return pn(this,n),this;var o=this._events[n];if(o.fn)o.fn===e&&(!s||o.once)&&(!t||o.context===t)&&pn(this,n);else{for(var a=0,c=[],d=o.length;a<d;a++)(o[a].fn!==e||s&&!o[a].once||t&&o[a].context!==t)&&c.push(o[a]);c.length?this._events[n]=c.length===1?c[0]:c:pn(this,n)}return
`)+`\r
`}});var yu=Wt(ei=>{var Ui=Au(),Km=Ru();ei.write=Km;ei.parse=Ui.parse;ei.parseParams=Ui.parseParams;ei.parseFmtpConfig=Ui.parseFmtpConfig;ei.parsePayloads=Ui.parsePayloads;ei.parseRemoteCandidates=Ui.parseRemoteCandidates;ei.parseImageAttributes=Ui.parseImageAttributes;ei.parseSimulcastStreamList=Ui.parseSimulcastStreamList});var Ed=Wt((wD,Hl)=>{var Fl=Hl.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(r){return r.encoding?"rtpmap:%d %s/%s/%s":r.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(r){return r.address!=null?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(r){return r.subtype!=null?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(r){return"extmap:%d"+(r.direction?"/%s":"%v")+(r["encrypt-uri"]?" %s":"%v")+" %s"+(r.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(r){return r.sessionConfig!=null?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(r){var i="candidate:%s %d %s %d %s %d typ %s";return i+=r.raddr!=null?" raddr %s rport %d":"%v%v",i+=r.tcptype!=null?" tcptype %s":"%v",r.generation!=null&&(i+=" generation %d"),i+=r["network-id"]!=null?" network-id %d":"%v",i+=r["network-cost"]!=null?" network-cost %d":"%v",i}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(r){var i="ssrc:%d";retu
`)+`\r
`}});var Td=Wt(di=>{var Zi=Jl(),bf=ql();di.write=bf;di.parse=Zi.parse;di.parseParams=Zi.parseParams;di.parseFmtpConfig=Zi.parseFmtpConfig;di.parsePayloads=Zi.parsePayloads;di.parseRemoteCandidates=Zi.parseRemoteCandidates;di.parseImageAttributes=Zi.parseImageAttributes;di.parseSimulcastStreamList=Zi.parseSimulcastStreamList});import XP from"webrtc-adapter";var Ll=Se(Ne());var Gd=(O=>(O[O.INVALID_PARAMETER=4096]="INVALID_PARAMETER",O[O.INVALID_OPERATION=4097]="INVALID_OPERATION",O[O.NOT_SUPPORTED=4098]="NOT_SUPPORTED",O[O.DEVICE_NOT_FOUND=4099]="DEVICE_NOT_FOUND",O[O.INITIALIZE_FAILED=4100]="INITIALIZE_FAILED",O[O.SIGNAL_CHANNEL_SETUP_FAILED=16385]="SIGNAL_CHANNEL_SETUP_FAILED",O[O.SIGNAL_CHANNEL_ERROR=16386]="SIGNAL_CHANNEL_ERROR",O[O.ICE_TRANSPORT_ERROR=16387]="ICE_TRANSPORT_ERROR",O[O.JOIN_ROOM_FAILED=16388]="JOIN_ROOM_FAILED",O[O.CREATE_OFFER_FAILED=16389]="CREATE_OFFER_FAILED",O[O.SIGNAL_CHANNEL_RECONNECTION_FAILED=16390]="SIGNAL_CHANNEL_RECONNECTION_FAILED",O[O.UPLINK_RECONNECTION_FAILED=16391]="UPLINK_RECONNECTION_FAILED",O[O.DOWNLINK_RECONNECTION_FAILED=16392]="DOWNLINK_RECONNECTION_FAILED",O[O.REMOTE_STREAM_NOT_EXIST=16400]="REMOTE_STREAM_NOT_EXIST",O[O.CLIENT_BANNED=16448]="CLIENT_BANNED",O[O.SERVER_TIMEOUT=16449]="SERVER_TIMEOUT",O[O.SUBSCRIPTION_TIMEOUT=16450]="SUBSCRIPTION_TIMEOUT",O[O.PLAY_NOT_ALLOWED=16451]="PLAY_NOT_ALLOWED",O[O.DEVICE_AUTO_RECOVER_FAILED=16452]="DEVICE_AUTO_RECOVER_FAILED",O[O.START_PUBLISH_CDN_FAILED=16453]="START_PUBLISH_CDN_FAILED",O[O.STOP_PUBLISH_CDN_FAILED=16454]="STOP_PUBLISH_CDN_FAILED",O[O.START_MIX_TRANSCODE_FAILED=16455]="START_MIX_TRANSCODE_FAILED",O[O.STOP_MIX_TRANSCODE_FAILED=16456]="STOP_MIX_TRANSCODE_FAILED",O[O.NOT_SUPPORTED_H264=16457]="NOT_SUPPORTED_H264",O[O.SWITCH_ROLE_FAILED=16458]="SWITCH_ROLE_FAILED",O[O.API_CALL_TIMEOUT=16459]="API_CALL_TIMEOUT",O[O.SCHEDULE_FAILED=16460]="SCHEDULE_FAILED",O[O.API_CALL_ABORTED=16461]="API_CALL_ABORTED",O[O.SPC_INITIALIZED_FAILED=16462]="SPC_INITIALIZED_FAILED",O[O.UNKNOWN=65535]="UNKNOWN",O))(Gd||{}),A=Gd;var Vh=function(r){for(let i in A)if(A[i]===r)return i;return"UNKNOWN"},aa=class extends Error{constructor({name:e="RtcError",message:t,code:s=A.UNKNOWN,extraCode:n=0,constraint:o}){let a=`<${Vh(s)} 0x${s.toString(16)}>`,c=`${t}${o?` constraint: ${o}`:""}${t!=null&&t.includes(a)?"":` ${a}`}`;super(c);u(this,"code");u(this,"extraCode");u(this,"message");u(this,"originMessage");u(this,"name");u(this,"constraint");this.code=s,this.extraCode=n,this.name=e,this.message=c,this.constraint=o,this.originMessage=t}getCode(){return this.code}getExtraCode(){return this.extraCode}toString(){return this.originMessage}},b=aa;var Wd=new Date().getTime(),ca=0,Jd=function(r){Wd=r,ca=Wd-new Date().getTime();let i=new Date;i.setTime(r),S.info(`baseTime from server: ${i} offset: ${ca}`)},zr=function(){return new Date().getTime()+ca},fn=function(){let r=new Date;return r.setTime(zr()),r.toLocaleString()};var Pe={};Xr(Pe,{bytes2ms:()=>vm,convertObjectNumberToInt:()=>jn,copyProperties:()=>Nm,deepClone:()=>Sr,deepMerge:()=>Yt,delay:()=>qn,fibonacci:()=>Tr,formatedTime:()=>Vm,getAbilityConfigUrl:()=>au,getConstructorName:()=>Wn,getContainerFromElement:()=>Pm,getEnv:()=>bm,getInternalVersion:()=>km,getLoggerUrl:()=>Si,getMuteStateFromFlag:()=>Ai,getNetworkType:()=>uu,getNumNetworkType:()=>Ir,getReconnectionTimeout:()=>Mt,getStringByteLength:()=>Jn,getTurnServer:()=>xm,getUint32Version:()=>Ha,getValueType:()=>_e,getViewListFromView:()=>ys,glog:()=>pu,ipv4ToUint32:()=>Rs,isArray:()=>he,isAudioWorkletSupported:()=>Mm,isBoolean:()=>pe,isConstructor:()=>Cs,isEmpty:()=>Ba,isFunction:()=>z,isLangChinese:()=>Nt,isMediaStreamTrack:()=>Om,isNumber:()=>ee,isObject:()=>mt,isOverseaSdkAppId:()=>Ts,isPlainObject:()=>Ge,isPortrait:()=>Fa,isPromise:()=>As,isRemoteTrack:()=>ft,isString:()=>Y,isUndefined:()=>g,loadImage:()=>bs,ms2bytes:()=>Dm,ms2samples:()=>mu,performanceNow:()=>x,promiseAny:()=>Ss,samples2ms:()=>hu,setNetworkType:()=>Ua,stringify:()=>pt,stringifyIncludeValue:()=>$a,throttlePromise:()=>Ga});var Ia={};Xr(Ia,{AUDIO_MUTE_BIT:()=>In,AUDIO_STAT_BIT:()=>mi,AUX_S
\u8BF7\u67E5\u770B\u6587\u6863: ${iu("zh-cn",a)}
`:l=`${o}
`,l+=n)),s&&(l+=`
Refer to: ${iu("en",a)}
`),l}var Tm=0,Sm=1,ru=2;function Im({retryFunction:r,settings:i,onError:e,onRetrying:t,onRetryFailed:s,onRetrySuccess:n,context:o}){return function(...a){let{retries:c=5,timeout:d=1e3}=i,l=0,m=-1,p=Tm,_=(R,C)=>f(this,null,function*(){let N=o||this;try{let U=yield r.apply(N,a);l>0&&n&&n.call(this,l),l=0,R(U)}catch(U){let Fe=()=>{clearTimeout(m),l=0,p=ru,C(U)},hn=()=>{p!==ru&&l<(z(c)?c():c)?(l++,p=Sm,z(t)&&t.call(this,l,Fe),m=window.setTimeout(()=>{m=-1,_(R,C)},z(d)?d(l):d)):(Fe(),z(s)&&s.call(this,U))};z(e)?e.call(this,{error:U,retry:hn,reject:C,retryFuncArgs:a,retriedCount:l}):hn()}});return new Promise(_)}}var vt=Im;var su=Se(Ne(),1),Am=new su.default,T=Am;var zt=(B=>(B.ROOM_DESTROY="1",B.JOIN_START="21",B.JOIN_SCHEDULE_SUCCESS="22",B.JOIN_SIGNAL_CONNECTION_START="23",B.JOIN_SIGNAL_CONNECTION_END="24",B.JOIN_SEND_CMD="25",B.JOIN_RECEIVED_CMD_RES="26",B.JOIN_SUCCESS="27",B.JOIN_FAILED="28",B.LEAVE_START="51",B.LEAVE_SEND_CMD="52",B.LEAVE_SUCCESS="53",B.PUBLISH_START="61",B.SEND_FIRST_VIDEO_FRAME="62",B.PUBLISH_FAILED="63",B.SUBSCRIBE_START="81",B.SUBSCRIBE_SUCCESS="82",B.SUBSCRIBE_FAILED="84",B.UNSUBSCRIBE_SUCCESS="83",B.LOCAL_TRACK_CAPTURE_START="101",B.LOCAL_TRACK_CAPTURE_SUCCESS="102",B.LOCAL_TRACK_CAPTURE_FAILED="103",B.LOCAL_TRACK_PUBLISHED="104",B.LOCAL_TRACK_UNPUBLISHED="105",B.LOCAL_TRACK_REPLACED="106",B.SWITCH_DEVICE_SUCCESS="107",B.TRACK_MUTED="108",B.TRACK_UNMUTED="109",B.REMOTE_TRACK_SUBSCRIBED="110",B.REMOTE_TRACK_UNSUBSCRIBED="111",B.LOCAL_TRACK_RECAPTURE="112",B.PLAY_TRACK_START="151",B.PLAYER_STATE_CHANGED="152",B.VIDEO_LOADED_DATA="153",B.AUTOPLAY_DIALOG_CLICK_CONFIRM="154",B.SIGNAL_CONNECTION_STATE_CHANGED="201",B.PEER_CONNECTION_STATE_CHANGED="202",B.SINGLE_CONNECTION_STAT="203",B.SPC_RECONNECTED="204",B.HEARTBEAT_REPORT="251",B.RECEIVED_PUBLISHED_USER_LIST="252",B.REMOTE_PUBLISH_STATE_CHANGED="253",B.AUDIO_LEVEL_INTERVAL="260",B.NETWORK_QUALITY="261",B.VIDEO_CODEC_IMPLEMENTATION_CHANGED="262",B.QUALITY_LIMITATION_CHANGED="263",B.LOG="264",B))(zt||{});var xa=class{constructor(){this._roomIdMap=new Map;typeof registerProcessor=="undefined"&&(this._configs={sdkAppId:"",userId:"",version:Re,env:Jt.QCLOUD,browserVersion:Rt.name+Rt.version,ua:navigator.userAgent})}setConfig({sdkAppId:i,env:e,userId:t,roomId:s}){i!==this._configs.sdkAppId&&(this._configs.sdkAppId=String(i)),this._configs.env=e,this._configs.userId=t,this._roomIdMap.set(t,String(s))}logSuccessEvent(i){Xt||!S.isAbleToUpload||this._configs.env===Jt.QCLOUD&&this.uploadEventToKibana(w(v({},i),{result:"success"}))}logFailedEvent(i){if(Xt||!S.isAbleToUpload)return;let{eventType:e,code:t,error:s,userId:n}=i,o={roomId:this._roomIdMap.get(n||this._configs.userId),userId:n,eventType:e,result:"failed",code:t||(s==null?void 0:s.extraCode)||(s==null?void 0:s.code)||A.UNKNOWN};this._configs.env===Jt.QCLOUD&&this.uploadEventToKibana(w(v({},o),{error:s}))}uploadEventToKibana(i){let e=`stat-${i.eventType}-${i.result}`;(i.eventType==="delta-join"||i.eventType==="delta-leave"||i.eventType==="delta-publish")&&(e=`${i.eventType}:${i.delta}`),this.uploadEvent({log:e,userId:i.userId}),i.result==="failed"&&(e=`stat-${i.eventType}-${i.result}-${i.code}`,this.uploadEvent({log:e,userId:i.userId,error:i.error}))}uploadEvent({log:i,userId:e,error:t}){let s={timestamp:fn(),sdkAppId:this._configs.sdkAppId,userId:e||this._configs.userId,version:Re,log:i};t&&(s.errorInfo=t.message,t.stack&&(s.errorInfo+=`
${t.stack}`)),this.sendRequest(Si(this._configs.sdkAppId,li.LOG),s)}sendRequest(i,e){if(!S.isAbleToUpload){setTimeout(()=>{this.sendRequest(i,e)},1e3);return}qt({url:i,body:JSON.stringify(e)}).catch(()=>{})}},Z=new xa;var Pa=null,wa=!0;document&&document.head.insertAdjacentHTML("beforeend",Object.values(at).map(r=>`<link rel="dns-prefetch" href="https://${r}">`).join(`\r
`));function Ot(r){pe(r)&&r!==wa&&(wa=r,S.info(`setIsNeedToSchedule ${r}`))}T.on("28",()=>Ot(!0));T.on("63",()=>Ot(!0));T.on("84",()=>Ot(!0));T.on("201",r=>{r.state==="RECONNECTING"&&Ot(!0)});T.on("202",r=>{r.state==="RECONNECTING"&&Ot(!0)});function Cm(r,i,e){let t={totalCost:0,local:0,dns:0,tcp:0,tls:0,request:0,response:0};try{let s=performance.getEntriesByType("resource"),n=gr(r,h.MAIN),o=gr(r,h.BACKUP);for(let a of s)if(a.startTime>=e&&(a.name===n||a.name===o)&&a.transferSize>0){let c=a.name===n?h.MAIN:h.BACKUP,d=Math.round(a.duration),l=Math.round(a.domainLookupStart-a.startTime),m=a.redirectStart>0?Math.round(a.redirectEnd-a.redirectStart):0,p=a.fetchStart>0?Math.round(a.domainLookupStart-a.fetchStart):0,_=Math.round(a.domainLookupEnd-a.domainLookupStart),R=Math.round(a.requestStart-a.secureConnectionStart),C=Math.round(a.secureConnectionStart-a.connectStart),N=Math.round(a.responseStart-a.requestStart),U=Math.round(a.responseEnd-a.responseStart),Fe=[_,R,C,N,U];Z.uploadEvent({log:`stat-schedule-net:${d}(${l}(${m}->${p})->${Fe.join("->")}) ${c}`,userId:i}),t=w(v({},t),{totalCost:d,local:l,dns:_,tcp:C,tls:R,request:N,response:U});break}}catch(s){S.error("getScheduleDetailCost error",s)}return t}function ou(d){return f(this,arguments,function*({userId:r,sdkAppId:i,useStringRoomId:e,roomId:t,userSig:s,version:n,frameWorkType:o,role:a,latencyLevel:c}){if(!wa&&Pa)return{isCached:!0,result:Pa};let l={delta:0,count:[1,1],msg:[],detail:[]};try{let m=new FormData;m.append("userId",String(r)),m.append("sdkAppId",String(i)),m.append("isStrGroupId",String(e)),m.append("groupId",String(t)),m.append("sdkVersion",n),m.append("userSig",String(s)),a&&m.append("role",String(a)),c&&m.append("latencyLevel",String(c)),o&&m.append("frameWorkType",String(o));let p=x(),_=yield ym(m,l,i);_.config&&(_.config.loggerDomain&&ki(_.config.loggerDomain),pe(_.config.scheduleCache)&&Ot(!_.config.scheduleCache)),l.delta=x()-p;let R=Cm(Number(i),r,p);return Pa=_,{isCached:!1,result:_,detailCost:R}}catch(m){let p=he(m)?m[0]:m,_=ee(p.code)?p.code:0,R=`schedule failed${p.message?`: ${p.message}`:""}`,C=new b({code:A.SCHEDULE_FAILED,extraCode:_,message:k({key:M.JOIN_ROOM_FAILED,data:{error:R,code:_}})});throw S.error(R,_),C}})}var Ii={main:"",backup:""};function Va(r){he(r)?(Ii.main=r[0],Ii.backup=r[1]):Ii.main=r}function gr(r,i=h.MAIN,e=!1){return`https://${Ii[i]||cu(r,i,e)}/api/v1/config`}function au(r,i=h.MAIN){return`https://${Ii[i]||cu(r,i)}/api/v1/trtcAutoConf`}function cu(r,i=h.MAIN,e=!1){if(Ts(r))return i===h.MAIN?at.MAIN_OVERSEA:at.BACKUP_OVERSEA;let t;return Ts(r)?e?t=i===h.MAIN?at.MAIN_OVERSEA_OLD:at.BACKUP_OVERSEA_OLD:t=i===h.MAIN?at.MAIN_OVERSEA:at.BACKUP_OVERSEA:t=i===h.MAIN?at.MAIN:at.BACKUP,t}function Rm(r,i,e){return new Promise((t,s)=>{qt({url:r,body:i,timeout:e.timeout}).then(n=>{n.data.code===0?t(n.data.data):s({code:n.data.code,message:n.data.msg})}).catch(s)})}var nu=(r,i)=>vt({retryFunction:Rm,settings:{retries:3,timeout:0},onError:i,onRetrying:r});function ym(r,i,e){return new Promise((t,s)=>{let n=null;Ss([nu(o=>i.count[0]=o+1,({error:o,retry:a,retriedCount:c,retryFuncArgs:d})=>{i.msg[0]=o.message,n||(c>=2&&(d[0]=gr(e,h.MAIN,!0)),a())})(gr(e,h.MAIN),r,{get timeout(){return Tr(2+i.count[0])*1e3}}),nu(o=>i.count[1]=o+1,({error:o,retry:a,retriedCount:c,retryFuncArgs:d})=>{i.msg[1]=o.message,n||(c>=2&&(d[0]=gr(e,h.BACKUP,!0)),a())})(gr(e,h.BACKUP),r,{get timeout(){return Tr(2+i.count[1])*1e3}})]).then(o=>{n=o,t(n)}).catch(s)})}var bm=function(){return new URLSearchParams(location.search).get("trtc_env")||""},Ts=r=>Number(r)<14e8,Si=function(r,i){let e;Zr?e=Zr:e=Ts(r)?la:ua;let t=Math.floor(Math.random()*qr(2,31));return`${e}/v5/AVQualityReportSvc/C2S?random=${t}&sdkappid=${r}&cmdtype=${i}`},Is="unknown";function uu(){if(Is!=="unknown")return Is;let{userAgent:r,connection:i}=navigator,e=(r.match(/NetType\/\S+/)||[])[0]||"";e=e.toLowerCase().replace("nettype/",""),e==="3gnet"&&(e="3g");let t=i&&i.type&&i.type.toLowerCase(),s=i&&i.effectiveType&&i.effectiveType.toLowerCase();return s==="slow-2"&&(s="2g"),t&&(Is=lu(t,s)),Is}function lu(
`)}),a),c.forEach(d=>d.uploaded=!0)}}catch(s){}let t=e.filter(s=>!s.uploaded);t.length>0&&(this._queue=t.concat(this._queue))})}uploadLogWithRetry(i,e){return vt({retryFunction:()=>qt({url:Si(e,li.LOG),body:i,timeout:5e3}),settings:{retries:3,timeout:1e3},onError:({retry:t})=>{t()}})()}getPrefix(i){let e=new Date;e.setTime(zr());let t=String(e.getMilliseconds());return"padStart"in String.prototype&&(t=t.toString().padStart(3,"0")),`[${e.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/,"$1")}:${t}] <${nt[i]}>`}getLogLevel(){return this._logLevel}setLogLevel(i){g(nt[i])||(this._logLevel!==i&&this.info("setLogLevel",i),this._logLevel=i)}enableUploadLog(){this._isEnableUploadLog=!0}disableUploadLog(){this.warn("disableUploadLog"),this._isEnableUploadLog=!1}logChunkToString(i){if(Y(i))return i;try{return i instanceof Error?i.toString():JSON.stringify(i)}catch(e){return""}}log(i,e,t=!0,s,n){var c;e.unshift(this.getPrefix(i));let o={log:e.reduce((d,l)=>`${d} ${this.logChunkToString(l)}`.trim(),""),level:i,userId:s,sdkAppId:n,forAllJoinedClients:t};if(T.emit(E.LOG,{log:o}),this._isEnableUploadLog&&i>=this._logLevelToUpload&&this._queue.push(o),i<this._logLevel)return;let a=((c=nt[i])==null?void 0:c.toLowerCase())||"info";Gm?console[a]($m,Fm,Hm,...e):console[a](...e)}debug(...i){this.log(1,i)}info(...i){this.log(2,i)}warn(...i){this.log(3,i)}error(...i){this.log(4,i)}createLogger(i){return new Ar(i)}checkURLParam(){let e=new URLSearchParams(location.search).get("logLevelToUpload"),t=e?Number(e):-1;nt[t]&&(this._logLevelToUpload=t)}getQueue(){return this._queue}},S=new Wa;var Wm=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,r=>{let i=Math.random()*16|0;return(r=="x"?i:i&3|8).toString(16)})},Ns=Wm;var Ja=class{constructor(){u(this,"_prefix","TRTC");u(this,"_queue",new Map);this.checkStorage()}getRealKey(i){return`${this._prefix}_${i}`}checkStorage(){if(!Qt())return;setInterval(this.doFlush.bind(this),2e4),Object.keys(localStorage).filter(t=>{if(t.startsWith(this._prefix)){let s=localStorage.getItem(t);if(!s)return!1;let n=JSON.parse(s);if(n&&n.expiresIn<Date.now())return!0}return!1}).forEach(t=>localStorage.removeItem(t))}doFlush(){if(!!Qt())try{for(let[i,e]of this._queue)localStorage.setItem(i,JSON.stringify(e))}catch(i){S.warn(i)}}getItem(i){if(!Qt())return null;try{let e=localStorage.getItem(this.getRealKey(i));if(!e)return null;let t=JSON.parse(e);return t&&t.expiresIn>=Date.now()?t.value:null}catch(e){S.warn(e)}}setItem(i,e){if(!!Qt())try{let t={expiresIn:Date.now()+En,value:e};this._queue.set(this.getRealKey(i),t)}catch(t){S.warn(t)}}deleteItem(i){if(!Qt())return!1;try{return i=this.getRealKey(i),this._queue.delete(i),localStorage.removeItem(i),!0}catch(e){return S.warn(e),!1}}clear(){if(!!Qt())try{localStorage.clear()}catch(i){S.warn(i)}}},Xn=new Ja;var ii={};Xr(ii,{HTTPS_API:()=>sp,IS_GET_CAPABILITIES_SUPPORTED:()=>Ka,IS_GET_SETTINGS_SUPPORTED:()=>Lt,IS_SEI_SUPPORTED:()=>_t,IS_SPC_SUPPORTED:()=>Rr,basis:()=>ap,checkSystemRequirementsInternal:()=>Kn,decodeSupportStatus:()=>Yn,encodeSupportStatus:()=>Qa,getBrowserInfo:()=>ep,getDisplayResolution:()=>vu,isAddTransceiverSupported:()=>tt,isBrowserSupported:()=>za,isGetReceiversSupported:()=>Bi,isGetSendersSupported:()=>Ri,isGetTransceiversSupported:()=>kt,isGetUserMediaSupported:()=>Du,isMediaDevicesSupported:()=>zn,isMediaSessionSupported:()=>ku,isMediaStreamTrackProcessorSupported:()=>tp,isReplaceTrackSupported:()=>Ya,isScreenCaptureApiAvailable:()=>Ds,isSelectedCandidatePair:()=>Ci,isSetParametersSupported:()=>Ms,isSmallStreamAPISupported:()=>Mu,isSmallStreamSupported:()=>Os,isStopTransceiverSupported:()=>op,isTRTCSupported:()=>ip,isUnifiedPlanDefault:()=>np,isUsedInHttpProtocol:()=>ti,isWebAudioSupported:()=>Ou,isWebCodecSupported:()=>Zn,isWebCodecsSupported:()=>Nu,isWebRTCSupported:()=>Za,isWebTransportSupported:()=>Lu});var Xa=Se(yu(),1);var K={result:!1,detail:{isBrowserSupported:!1,isWebRTCSupported:!1,isWebCodecsSupported:!1,isMediaDevicesSupported:!1,isScreenShareSupported:!1,isSmallStreamSupported:!1,isH264EncodeSupported:!1,isVp8EncodeSuppo
let timerID = null;
self.onmessage = function (e) {
if (e.data === 'start') {
timerID = setInterval(() => {
self.postMessage('tick');
}, ${i.delay});
} else if (e.data === 'stop') {
clearInterval(timerID);
}
};
`],{type:"application/javascript"})));e.onmessage=t=>{t.data==="tick"&&(i.callback(),i.loopCount+=1,this.isBreakLoop(i)&&e.postMessage("stop"))},i.worker=e,e.postMessage("start")}static timeout(i){let e=()=>{if(i.callback(),i.loopCount+=1,!this.isBreakLoop(i))return i.timeoutID=setTimeout(e,i.delay)};return i.timeoutID=setTimeout(e,i.delay)}static ric(i){let e=x(),t,s=()=>{if(t=x()-e,t>=i.delay&&(e=x()-Math.floor(t%i.delay),i.callback(),i.loopCount+=1),!this.isBreakLoop(i))return i.ricID=Vu(s,{timeout:i.delay})};return i.ricID=Vu(s,{timeout:i.delay})}static raf(i){i.delay=(1e3/i.fps).toFixed(2);let e=x(),t,s=()=>{if(document.hidden&&i.backgroundTask)return t=x()-e,e=x(),i.callback(),i.loopCount+=1,this.isBreakLoop(i)?void 0:i.timeoutID=setTimeout(s,i.delay-Math.floor(t%i.delay));if(t=x()-e,t>=i.delay&&(e=x()-Math.floor(t%i.delay),i.callback(),i.loopCount+=1),!this.isBreakLoop(i))return i.rafID=requestAnimationFrame(s)};if(i.rafID=requestAnimationFrame(s),i.backgroundTask){let n=()=>{if(document.hidden){let o=x()-e;o>=i.delay?s():i.timeoutID=setTimeout(s,i.delay-o)}};document.addEventListener("visibilitychange",n),i.onVisibilitychange=n,document.hidden&&n()}return i.taskID}static hasTask(i){return this.taskMap.has(i)}static clearTask(i){if(!this.taskMap.has(i))return!0;let{intervalID:e,timeoutID:t,rafID:s,ricID:n,onVisibilitychange:o,worker:a}=this.taskMap.get(i);return a&&a.terminate(),e&&clearInterval(e),t&&clearTimeout(t),s&&hp(s),n&&lp(n),o&&document.removeEventListener("visibilitychange",o),this.taskMap.delete(i),!0}static isBreakLoop(i){return this.taskMap.has(i.taskID)?i.count!==0&&i.loopCount>=i.count?(this.clearTask(i.taskID),!0):!1:!0}};ws.taskMap=new Map,ws.currentTaskID=1;var re=ws;var LE={STREAM_ADDED:"stream-added",STREAM_REMOVED:"stream-removed",STREAM_UPDATED:"stream-updated",STREAM_SUBSCRIBED:"stream-subscribed",CONNECTION_STATE_CHANGED:"connection-state-changed",PEER_JOIN:"peer-join",PEER_LEAVE:"peer-leave",MUTE_AUDIO:"mute-audio",MUTE_VIDEO:"mute-video",UNMUTE_AUDIO:"unmute-audio",UNMUTE_VIDEO:"unmute-video",CLIENT_BANNED:"client-banned",NETWORK_QUALITY:"network-quality",AUDIO_VOLUME:"audio-volume",SEI_MESSAGE:h.SEI_MESSAGE,ERROR:"error"};var ve={LOADED_DATA:h.LOADEDDATA,MEDIA_TRACK_CHANGED:"media-track-changed",PLAYER_STATE_CHANGED:"player-state-changed",ERROR:"error"};var xt={};Xr(xt,{create:()=>De,remove:()=>me});var Vs=new WeakMap;function De(r,i){Vs.has(r)||Vs.set(r,[]);let e=Vs.get(r),s={add:(n,o)=>("addEventListener"in i?(e.push(i.removeEventListener.bind(i,n,o)),i.addEventListener(n,o)):(e.push(i.off.bind(i,n,o)),i.on(n,o)),s)};return s}function me(r){let i=Vs.get(r);i&&(i.forEach(e=>e()),Vs.delete(r))}var Pt=new WeakMap;function it({settings:r={retries:5,timeout:2e3},onError:i,onRetrying:e,onRetryFailed:t}){return function(s,n,o){let a=vt({retryFunction:o.value,settings:r,onError({error:c,retry:d,reject:l,retryFuncArgs:m}){var p;i?i.call(this,c,()=>{var _;(_=Pt.get(s))!=null&&_.has(n)?d():l(c)},l,m):(p=Pt.get(s))!=null&&p.has(n)?d():l(c)},onRetrying(c,d){var l;z(e)&&e.call(this,c,d),(l=Pt.get(s))!=null&&l.has(n)&&(Pt.get(s).get(n).stopRetry=d)},onRetryFailed:t});return o.value=function(...c){let d=Pt.get(s);return d?d.set(n,{args:c}):Pt.set(s,new Map([[n,{args:c}]])),a.apply(this,c).finally(()=>{var l;return(l=Pt.get(s))==null?void 0:l.delete(n)})},o}}function Us({fnName:r,callback:i,validateArgs:e=!0}){return function(t,s,n){let o=n.value;return n.value=function(...a){var c,d;if((c=Pt.get(t))!=null&&c.has(r)){let{stopRetry:l,args:m}=Pt.get(t).get(r),p=!0;if(e){for(let _ of m)if(!a.find(R=>R===_)){p=!1;break}}p&&(i&&i.apply(this,a),l&&l(),(d=Pt.get(t))==null||d.delete(r))}return o.apply(this,a)},n}}var mp=1,pp=0,to=class{constructor(i=!0){this.countMap=new Map;this.distributionMap=new Map;this.log=S.createLogger({id:"kv"});i&&(T.on("102",({track:e,cost:t})=>{this.addSuccessEvent({key:e.kind===h.AUDIO?io.START_MICROPHONE:ec.START_CAMERA,cost:t})}),T.on("103",({track:e,error:t})=>{this.addFailedEvent({key:e.kind===h.AUDIO?io.START_MICROPHONE:ec.START_CAMERA,error:t})}))}getReportData(){let
<svg class="icon" width="18" height="18" p-id="2030" t="1639646523624" version="1.1" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
<path d="m464 784.35c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z" p-id="2031"/>
<path d="m512 960c-247.04 0-448-200.96-448-448s200.96-448 448-448 448 200.96 448 448-200.96 448-448 448zm0-831.71c-211.58 0-383.71 172.13-383.71 383.71 0 211.55 172.13 383.71 383.71 383.71 211.55 0 383.71-172.16 383.71-383.71 0-211.58-172.16-383.71-383.71-383.71z" p-id="2032"/>
<path d="m512 673.7c-17.665 0-32.001-14.336-32.001-31.999v-54.112c0-52.353 40-92.352 75.328-127.65 25.887-25.92 52.672-52.672 52.672-74.017 0-53.343-43.072-96.735-95.999-96.735-53.823 0-95.999 41.536-95.999 94.559 0 17.665-14.336 31.999-32.001 31.999s-32.001-14.336-32.001-31.999c0-87.424 71.775-158.56 160-158.56s160 72.095 160 160.74c0 47.904-36.32 84.192-71.424 119.3-27.84 27.776-56.576 56.512-56.576 82.336v54.112c0 17.665-14.336 32.032-32.001 32.032z" p-id="2033"/>
</svg>
`,t.onclick=this.onQuestionClick.bind(this);let s=document.createElement("div");s.className=ac,s.innerText=`${Nt()?"\u8BE6\u60C5 >":"Detail >"}`,s.onclick=this.onCollapseClick.bind(this);let n=i.content.firstChild,o=n.querySelector(`.${so}`);return o.appendChild(s),o.appendChild(t),o.appendChild(e),n}addDiaLog(){uc()||(this._dialogNode=this.createDiaLog(),document.body.appendChild(this._dialogNode),this._dialogNode.onclick=this.onConfirm.bind(this),this._dialogNode.querySelector(`.${yr}`).onclick=i=>i.stopPropagation(),this._bodyPosition=document.body.style.position,document.body.style.position="fixed",S.info("show autoplay dialog"),Z.uploadEvent({log:_p}))}deleteDiaLog(){this._dialogNode&&(document.body.removeChild(this._dialogNode),document.body.style.position=this._bodyPosition,this._dialogNode=null)}onConfirm(){S.warn("confirm clicked, try resume stream"),T.emit(E.AUTOPLAY_DIALOG_CLICK_CONFIRM),this.deleteDiaLog()}onCollapseClick(){let i=this._dialogNode.querySelector(`.${$u}`);i.style.visibility=`${this._showDetail?"hidden":"visible"}`,i.style.height=`${this._showDetail?0:"fit-content"}`,this._showDetail=!this._showDetail,this._isCollapseClicked||Z.uploadEvent({log:Ep}),this._isCollapseClicked=!0}onQuestionClick(){window.open(Wu,"_blank"),this._isQuestionClicked||Z.uploadEvent({log:gp}),this._isQuestionClicked=!0}},Ju=cc;var We=class extends wt{constructor(e){super(e,h.VIDEO);u(this,"viewMirror",!1);u(this,"objectFit");u(this,"container");u(this,"canvas");this.container=e.container,this.canvas=e.canvas,g(e.viewMirror)||(this.viewMirror=e.viewMirror),g(e.objectFit)||(this.objectFit=e.objectFit),this.initializeElement()}initializeElement(){var t;let e=document.createElement(h.VIDEO);this.track&&(e.srcObject=new MediaStream([this.track])),e.muted=!0,e.setAttribute("id",`video_${this.id}`),e.setAttribute("style",this.styleAttribute),this.canvas&&this.canvas.setAttribute("style",this.styleAttribute),e.setAttribute("autoplay","autoplay"),e.setAttribute("playsinline","playsinline"),this.element=e,(t=this.container)==null||t.appendChild(this.elementToRender),this.bindElementEvents()}get styleAttribute(){let e=`width: 100%; height: 100%; object-fit: ${this.objectFit};background-color: black;`;return this.viewMirror&&(e+="transform: scaleX(-1);"),e}setContainer(e){var t;this.container=e,this.track&&this.elementToRender&&((t=this.container)==null||t.appendChild(this.elementToRender))}bindElementEvents(){let e=super.bindElementEvents();this.handleElementEvent=this.handleElementEvent.bind(this),e&&e.add(h.ENTER_PICTURE_IN_PICTURE,this.handleElementEvent).add(h.LEAVE_PICTURE_IN_PICTURE,this.handleElementEvent)}handleElementEvent(e){var s;super.handleElementEvent(e);let t=e.type;if(t===h.PAUSE&&(this.container&&document.getElementById(this.container.id)||this._log.warn(`${this.kind} player has been remove, element ID: ${(s=this.container)==null?void 0:s.id}`),this._pausedRetryCount>0&&!uc()&&(this._log.info(`${this.kind} player auto resume when paused`),this.resume(),this._pausedRetryCount--)),this.viewMirror&&this.element){let n=this.element.style.transform;t===h.ENTER_PICTURE_IN_PICTURE?this.element.style.transform=n.replace("scaleX(-1)",""):t===h.LEAVE_PICTURE_IN_PICTURE&&!n.includes("scaleX")&&(this.element.style.transform=`${n} scaleX(-1)`)}}setCanvas(e){var t,s;this.canvas!==e&&((t=this.canvas)==null||t.remove(),e==null||e.setAttribute("style",this.styleAttribute),this.canvas=e,e&&((s=this.container)==null||s.appendChild(e)))}setAttr(e){let t=Object.assign({autoplay:"autoplay",playsinline:"playsinline",muted:!0},e);t.style=Object.assign({width:"100%",height:"100%"},t.style),super.setAttr(t)}get mirror(){return this.viewMirror}setRect(e,t){this.elementToRender&&(this.elementToRender.style.width=`${e}px`,this.elementToRender.style.height=`${t}px`)}setViewMirror(e){this.elementToRender&&(this.elementToRender.style.transform=e?"scaleX(-1)":""),this.viewMirror=e}setObjectFit(e){this.elementToRender&&(this.elementToRender.style.objectFit=`${e}`),this.objectFit=e}stop(e=0){var t;super.stop(e),(t=this.canvas)==null||t.remove()}
class VolumeMeter extends AudioWorkletProcessor{constructor(){super();this.volume=0;this.intervalTime=200;this.tick=this.intervalTime;this.isStop=false;this.cache=[];this.sentFirstInfo1=false;this.unmute=false;this.port.onmessage=(event)=>{const{data}=event;switch(data.name){case"chunk":this.cache.push.apply(this.cache,data.data);if(!this.sentFirstInfo1){this.port.postMessage({cl:data.data.length});this.sentFirstInfo1=true;}
break;case"setIntervalTime":this.intervalTime=data.intervalTime;break;case"unmute":this.unmute=true;break;case"stop":this.isStop=true;break;}};}
process(inputs,outputs){const input=inputs[0];const output=outputs[0];if(!input&&!output){return true;}
if(this.isStop){return false;}
const l=output?output[0].length:0;const cl=this.cache.length;if(cl>l){output[0].set(this.cache.slice(0,l));this.cache=this.cache.slice(l);}else if(this.unmute){output[0].set(input[0]);}
const firstChannel=cl>l?output[0]:input[0];if(!firstChannel){return true;}
let sum=0;let rms;for(let i=0;i<firstChannel.length;++i){sum+=firstChannel[i]*firstChannel[i];}
rms=Math.sqrt(sum/firstChannel.length);this.volume=Math.max(rms,this.volume*0.95);this.tick-=firstChannel.length;if(this.tick<0){this.tick+=(this.intervalTime/1000)*sampleRate;this.port.postMessage({volume:this.volume,cacheLen:cl,outputLen:l});}
return true;}}
registerProcessor("volume-meter",VolumeMeter);
`,Gi=class{constructor(i){u(this,"_volume",0);u(this,"_log");u(this,"_scriptProcessorNode",null);u(this,"_audioWorkletNode",null);u(this,"_interval",200);u(this,"ready",this.preload());let{log:e}=i;this._log=e,T.on(E.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}get node(){return this._audioWorkletNode||this._scriptProcessorNode}preload(){return Gi.workletReady||(Gi.workletReady=Fi(Gi.audioContext,URL.createObjectURL(new Blob([Ip],{type:"application/javascript"})))),Gi.workletReady.then(()=>this.initAudioWorklet()).catch(()=>this.initScriptProcessor())}initAudioWorklet(){if(!this._audioWorkletNode)try{this._audioWorkletNode=new AudioWorkletNode(Gi.audioContext,"volume-meter");let i=!1;this._audioWorkletNode.port.onmessage=e=>{this._volume=e.data.volume||0,!i&&e.data.cacheLen&&e.data.outputLen&&(this._log.warn("worklet play success"),i=!0)},this.handleAudioLevelInterval({interval:this._interval})}catch(i){Z.logFailedEvent({userId:this._log.userId,eventType:we.LOAD_WORKLET,error:i}),this.initScriptProcessor()}}initScriptProcessor(){if(!this._scriptProcessorNode)try{this._scriptProcessorNode=Je("volume-meter").createScriptProcessor(2048,1,1),this._scriptProcessorNode.onaudioprocess=i=>{let e=i.inputBuffer.getChannelData(0),t=0;for(let s=0;s<e.length;++s)t+=e[s]*e[s];this._volume=Math.sqrt(t/e.length)||0}}catch(i){this._log.error(`volumeMeter init script processor error: ${i}`)}}destroy(){this._scriptProcessorNode&&(this._scriptProcessorNode.onaudioprocess=null),this._audioWorkletNode&&(this._audioWorkletNode.port.postMessage({name:"stop"}),this._audioWorkletNode.port.onmessage=null),this._audioWorkletNode=null,this._scriptProcessorNode=null,T.off(E.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}getInternalAudioLevel(){return this._volume}getCalculatedVolume(){return parseFloat(this._volume.toFixed(2))}handleAudioLevelInterval(i){var t;let{interval:e}=i;this._interval=e,(t=this._audioWorkletNode)==null||t.port.postMessage({name:"setIntervalTime",intervalTime:e})}},$s=Gi;u($s,"audioContext",Je("volume-meter")),u($s,"workletReady");var uo=class extends Et{constructor(e){super();u(this,"_volumeMeter");this._volumeMeter=new $s(e)}deleteNode(){super.deleteNode(),this._volumeMeter.destroy()}init(){return f(this,null,function*(){yield this._volumeMeter.preload(),this.setNode(this._volumeMeter.node)})}getCalculatedVolume(){return this._volumeMeter.getCalculatedVolume()}getInternalAudioLevel(){return this._volumeMeter.getInternalAudioLevel()}write(e){if(this.node){let t=e.allocationSize({planeIndex:0}),s=new Float32Array(t>>2);e.copyTo(s,{planeIndex:0}),this.node.port.postMessage({name:"chunk",data:s},[s.buffer]),e.close()}}};var zu=Se(Ne(),1);var Xu=r=>i=>i.deviceId===r;var Fs=class{constructor(i,e="Input"){u(this,"kind");u(this,"type");u(this,"devices",[]);this.kind=i,this.type=e}update(i,e){let t=i.filter(s=>s.kind===`${this.kind}${this.type.toLocaleLowerCase()}`);if(this.devices.length===1&&Nr(this.devices[0])){this.devices=t;return}e&&(t.forEach(s=>{if(s.deviceId&&!this.devices.find(Xu(s.deviceId))){let n=`${this.kind}${this.type}Added`;S.warn(`${n}: ${JSON.stringify(s)}`),e.emit(n,s)}}),this.devices.forEach(s=>{if(s.deviceId&&!t.find(Xu(s.deviceId))){let n=`${this.kind}${this.type}Removed`;S.warn(`${n}: ${JSON.stringify(s)}`),e.emit(n,s)}})),this.devices=t}hasDevice(i){return!!this.devices.find(e=>e.deviceId===i)}},lc=class extends zu.EventEmitter{constructor(){super();u(this,"audioInputs",new Fs(h.AUDIO));u(this,"videoInputs",new Fs(h.VIDEO));u(this,"audioOutputs",new Fs(h.AUDIO,"Output"));this.init(),navigator.mediaDevices&&(navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",()=>this.update()),"ondevicechange"in navigator.mediaDevices||re.run(wi,()=>{this.update()},{delay:1e4}))}init(){lo().then(e=>{this.audioInputs.update(e),this.videoInputs.update(e),this.audioOutputs.update(e)})}update(){return f(this,arguments,function*(e=0){let t=yield lo(e);return this.audioInputs.update(t,this),this.videoInputs.update(t,this),this.audioOutputs.update(t,this),this})}},ge
// \u9876\u70B9\u7740\u8272\u5668
attribute vec4 a_position;
attribute vec2 a_texCoord;
varying vec2 v_texCoord;
void main() {
gl_Position = a_position;
v_texCoord = a_texCoord;
}
`,Gp=`
// \u7247\u5143\u7740\u8272\u5668
precision mediump float;
varying vec2 v_texCoord;
uniform sampler2D u_texture;
void main() {
gl_FragColor = texture2D(u_texture, v_texCoord);
} `,Ro=class extends ${constructor(e){super();u(this,"frameRate");u(this,"_canvas");u(this,"log");u(this,"hasAlpha",!1);u(this,"name");this.name=e.name,this.log=e.logger.createChild({id:`vc-${this.name}`}),this.frameRate=e.frameRate}set width(e){this._canvas&&(this._canvas.width=e)}get width(){var e;return((e=this._canvas)==null?void 0:e.width)||0}set height(e){this._canvas&&(this._canvas.height=e)}get height(){var e;return((e=this._canvas)==null?void 0:e.height)||0}setSize(e,t){this._canvas&&(this._canvas.width=e,this._canvas.height=t)}createVideoTrackSource(e,t){return new Or(this,e,{logger:this.log,name:t})}createVideoTrackDestination(e){return new Dr(this,e)}createVideoImageSource(e,t){return new js(this,t?Object.assign(t,{logger:this.log,image:e}):{logger:this.log,image:e})}createVideoPlayerSource(e,t){return new qs(this,e,t?Object.assign(t,{logger:this.log}):{logger:this.log})}get available(){return this.state==="created"}disconnect(){this.emit("disconnect")}},Wp={alpha:!0,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"low-power"},ye=class extends Ro{constructor(){super(...arguments);u(this,"defaultProgam");u(this,"defaultVShader");u(this,"defaultFShader");u(this,"ctx")}create(){if(this._canvas||(this._canvas=document.createElement("canvas")),this.ctx=this._canvas.getContext("webgl2",Wp),!this.ctx)throw new Error("webgl2 not supported");this.defaultVShader=this.createShader(this.ctx.VERTEX_SHADER,Hp),this.defaultFShader=this.createShader(this.ctx.FRAGMENT_SHADER,Gp),this.defaultProgam=this.createProgram(this.defaultVShader,this.defaultFShader),this._canvas.addEventListener("webglcontextlost",()=>{this.destroy(new Error("webgl context lost"))}),this.log.info("video context created use webgl")}destroy(e){return this.disconnect(),this.log.info(`video context destroy ${e?`: ${e}`:""}`),this.ctx&&(this.ctx.deleteShader(this.defaultVShader),this.ctx.deleteShader(this.defaultFShader),this.ctx.deleteProgram(this.defaultProgam),delete this.ctx),e}set width(e){var t;(t=this.ctx)==null||t.viewport(0,0,e,this.height),super.width=e}set height(e){var t;(t=this.ctx)==null||t.viewport(0,0,this.width,e),super.height=e}setSize(e,t){var s;(s=this.ctx)==null||s.viewport(0,0,e,t),super.setSize(e,t)}createShader(e,t){let s=this.ctx,n=s.createShader(e);return s.shaderSource(n,t),s.compileShader(n),n}createProgram(e,t){let s=this.ctx,n=s.createProgram();return s.attachShader(n,e),s.attachShader(n,t),s.linkProgram(n),s.getProgramParameter(n,s.LINK_STATUS)||this.log.error(s.getProgramInfoLog(n)),n}};y([ue($.INIT,"created",{sync:!0})],ye.prototype,"create",1),y([ue("created",$.INIT,{ignoreError:!0,sync:!0,success(r){r&&this.emit("unavailable",r),this.removeAllListeners()}})],ye.prototype,"destroy",1);var $e=class extends Ro{constructor(){super(...arguments);u(this,"ctx")}create(e){if(this.hasAlpha=e.alpha,this._canvas=document.createElement("canvas"),this.ctx=this._canvas.getContext("2d",{alpha:e.alpha}),!this.ctx)throw new Error("2d context not supported");this.log.info("video context created use 2d")}destroy(e){this.disconnect(),this.log.info(`video context destroy ${e?`: ${e}`:""}`),delete this.ctx,this._canvas&&(this._canvas.remove(),this._canvas.width=0,this._canvas.height=0,delete this._canvas),this.removeAllListeners()}};y([ue($.INIT,"created",{sync:!0})],$e.prototype,"create",1),y([ue("created",$.INIT,{ignoreError:!0,sync:!0})],$e.prototype,"destroy",1);function Jp(r){return[15,30,45,60].reduce((e,t)=>Math.abs(t-r)<Math.abs(e-r)?t:e)}var gt=class extends rt{constructor(e,t,s=4){super(e,t,s);u(this,"mediaType",4);u(this,"source");u(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,framesReceived:0,framesDecoded:0,frameWidth:0,frameHeight:0,end2EndDelay:0,jitterBufferDelay:0});u(this,"pipeline",[]);this.manager=e.videoManager}play(e,t){return(_s===17||(t==null?void 0:t.canvasRender))&&!this.source&&this.useCanvasPlayer(),super.play(e,t)}useCanvasPlayer(){if(this.log.info(`useCanvasPlayer(), ${!!this.player.element}`),!this.player.element)retur
`)))}else{if(e instanceof Xi)return e;n=new Xi({code:P.UNKNOWN_ERROR,fnName:t,originError:e})}return n}};function sf(r){let i;switch(r){case"NotFoundError":i=5301;break;case"NotAllowedError":i=5302;break;case"NotReadableError":i=5303;break;case"OverconstrainedError":i=5304;break;case"InvalidStateError":i=5305;break;case"SecurityError":i=5306;break;case"AbortError":i=5307;break;default:i=5300}return i}var L=Xi;var Tl={type:"object",properties:{cameraId:{type:"string"},useFrontCamera:{type:"boolean"},fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:["string","boolean"],values:[!0,!1,"view","publish","both"]},small:{properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},videoTrack:{instanceOf:MediaStreamTrack}}},Sl={type:"object",properties:{systemAudio:{type:"boolean"},fillMode:{type:"string",values:["contain","cover","fill"]},profile:{type:["string","object"],properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},videoTrack:{instanceOf:MediaStreamTrack},audioTrack:{instanceOf:MediaStreamTrack}}},Pr={type:["string",HTMLElement,null,"array"],arrayItem:{instanceOf:HTMLElement},validate(r,i,e){if(Y(r)&&!document.getElementById(r))throw new L({code:P.INVALID_PARAMETER,extraCode:5009,fnName:e,messageParams:{key:i}})}},Il={name:"userId",required:!0,type:"string"},Al={type:"object",properties:{microphoneId:{type:"string"},audioTrack:{instanceOf:MediaStreamTrack},captureVolume:{type:"number",min:0},earMonitorVolume:{type:"number",min:0,max:100},profile:{values:[st.AUDIO_PROFILE_STANDARD,st.AUDIO_PROFILE_STANDARD_STEREO,st.AUDIO_PROFILE_HIGH,st.AUDIO_PROFILE_HIGH_STEREO]},echoCancellation:{type:"boolean"},autoGainControl:{type:"boolean"},noiseSuppression:{type:"boolean"}}};function zs(r,i){if(!r)throw new L({code:P.INVALID_OPERATION,extraCode:5101,fnName:i})}function Cl(r,i,e){if(!r)throw new L({code:P.INVALID_OPERATION,extraCode:5102,fnName:i,messageParams:{value:e}})}var My={type:"number",notLessThanZero:!0},nf={create:[{name:"RoomConfig",instanceOf:Function},{name:"CreateConfig",type:"object",properties:{plugins:{type:"array",arrayItem:{instanceOf:Function}}}}],enterRoom:{name:"EnterRoomConfig",type:"object",required:!0,validate(r,i,e){if(this._room.isJoined)throw new L({code:P.INVALID_OPERATION,extraCode:5104,fnName:e});if(r.roomId){if(Y(r.roomId))throw new L({code:P.INVALID_PARAMETER,extraCode:5016,fnName:e,messageParams:{key:i}});if(!(/^[1-9]\d*$/.test(String(r.roomId))&&r.roomId<4294967295))throw new L({code:P.INVALID_PARAMETER,extraCode:5013,fnName:e,messageParams:{key:i}})}else if(r.strRoomId){if(!/^[A-Za-z\d\s!#$%&()+\-:;<=.>?@[\]^_{}|~,]{1,64}$/.test(r.strRoomId))throw new L({code:P.INVALID_PARAMETER,extraCode:5012,fnName:e,messageParams:{key:i}})}else throw new L({code:P.INVALID_PARAMETER,extraCode:5015,fnName:e})},properties:{sdkAppId:{required:!0,type:"number",allowEmpty:!1},userId:{required:!0,type:"string",allowEmpty:!1},userSig:{required:!0,type:"string",allowEmpty:!1},scene:{type:"string",values:["live","rtc"]},role:{type:"string",values:["audience","anchor"]},roomId:{type:["string","number"]},strRoomId:{type:"string"},proxy:{type:["object","string"],properties:{websocketProxy:{type:"string"},turnServer:{type:["object","array"],properties:{url:{required:!0,type:"string"},username:{type:"string"},credential:{type:"string"},credentialType:{type:"string",values:["password"]}}},loggerProxy:{type:"string"},webtransportProxy:{type:"string"}}},enableAutoPlayDialog:{type:"boolean"},userDefineRecordId:{type:"string"},latencyLevel:{type:"number"}}},startLocalVideo:{name:"LocalVideoConfig",type:"object",properties:{view:Pr,mute:{type:["boolean","string"]},publish:{type:"boolean"},option:Tl},validate(r){var i;if(!((i=r==null?void 0:r.option)!=null&&i.videoTrack)&&ti())throw new L({code:P.ENV_NOT_SUPPORTED,extraCode:5201})}},updateLocalVideo:{name:"updateLocalVideoConfig",type:"object",required:!0,properties:{view:w(v({},Pr),{required:!1}),publish:{type:"boolean"},mute:{type:["boolean","string"]},
`)))}throw i};function vi(r,i){return W((e,t)=>function(...s){let n=Ht.get(this,typeof r=="string"?r:r.call(this,...s));return n?(i&&(n.startSame=i.bind(this)),n.action(0,e.bind(this),s).catch(Vo.bind(null,t))):e.apply(this,s)})}function zi(r,i){let{merge:e,debounce:t}=i||{};return W((s,n)=>function(...o){let a=Ht.get(this,typeof r=="string"?r:r.call(this,...o));if(!a)return s.apply(this,o);if(e&&(a.mergeUpdate=e.bind(this)),t&&t.isNeedToDebounce.apply(this,o)){let{delay:c,getKey:d}=t;return new Promise((l,m)=>{var R,C;let p=(R=wo.get(this))==null?void 0:R.get(d(...o));if(p){let{timeoutId:N,resolve:U}=p;clearTimeout(N),U()}let _=setTimeout(()=>{if(a.state===3||a.state===4)return l();a.action(2,s.bind(this),o).catch(Vo.bind(null,n)).then(l,m)},c);wo.has(this)?(C=wo.get(this))==null||C.set(d(...o),{timeoutId:_,resolve:l}):wo.set(this,new Map([[d(...o),{timeoutId:_,resolve:l}]]))})}return a.action(2,s.bind(this),o).catch(Vo.bind(null,n))})}function Di(r){return W((i,e)=>function(...t){let s=typeof r=="function"?r.call(this,...t):r;if(s instanceof RegExp)return Promise.all(Ht.gets(this,s).map(o=>o.action(3,()=>Promise.resolve(),t))).then(()=>i.call(this,...t));let n=Ht.get(this,s);return n?n.action(3,i.bind(this),t).catch(Vo.bind(null,e)):i.apply(this,t)})}var H={ERROR:"error",AUTOPLAY_FAILED:"autoplay-failed",KICKED_OUT:"kicked-out",REMOTE_USER_ENTER:"remote-user-enter",REMOTE_USER_EXIT:"remote-user-exit",REMOTE_AUDIO_AVAILABLE:"remote-audio-available",REMOTE_AUDIO_UNAVAILABLE:"remote-audio-unavailable",REMOTE_VIDEO_AVAILABLE:"remote-video-available",REMOTE_VIDEO_UNAVAILABLE:"remote-video-unavailable",AUDIO_VOLUME:"audio-volume",NETWORK_QUALITY:"network-quality",CONNECTION_STATE_CHANGED:"connection-state-changed",AUDIO_PLAY_STATE_CHANGED:"audio-play-state-changed",VIDEO_PLAY_STATE_CHANGED:"video-play-state-changed",SCREEN_SHARE_STOPPED:"screen-share-stopped",DEVICE_CHANGED:"device-changed",PUBLISH_STATE_CHANGED:"publish-state-changed",TRACK:"track",STATISTICS:"statistics",SEI_MESSAGE:"sei-message",CUSTOM_MESSAGE:"custom-message"};function Uo(r){return r==="sub"?"auxiliary":r==="auxiliary"?"sub":"main"}function Yi(r){return r===st.QOS_PREFERENCE_CLEAR?"detail":r===st.QOS_PREFERENCE_SMOOTH?"motion":""}var df=r=>r.startsWith("data:application/octet-stream;base64,"),uf=r=>r.startsWith("file://"),Bo=class{constructor(){u(this,"_log");this._log=S.createLogger({id:"fd"})}download(i,e){return f(this,null,function*(){let{type:t="blob"}=e||{};try{let s=x(),n;if(z(fetch)?n=yield this.downloadWithFetch(i,t):n=yield this.downloadWithXHR(i,t),!n||!n.data)throw new Error("data is empty");let o=x()-s;return this._log.info(`downloaded: ${i}, return type: ${t}, cost: ${o}ms`),D.addSuccessEvent({key:522700,cost:x()-s}),n.data}catch(s){throw this._log.error(`failed to download: ${i}, error: ${s}`),D.addFailedEvent({key:522700,error:s}),s}})}downloadWithFetch(i,e){return f(this,null,function*(){this._log.info(`download with fetch: ${i}, return type: ${e}`);try{let t=yield fetch(i);if(!t.ok)throw new Error("network response was not ok");let s;return e==="arraybuffer"?s=yield t.arrayBuffer():s=yield t.blob(),{data:s}}catch(t){throw t}})}downloadWithXHR(i,e){return this._log.info(`download with xhr: ${i}, return type: ${e}`),new Promise((t,s)=>{let n=new XMLHttpRequest;n.open("GET",i,!0),n.responseType=e,n.onload=()=>{n.status===200||n.status===0&&n.response?t({data:n.response}):s(new Error("XHR failed"))},n.onerror=s,n.send(null)})}loadWasm(i,e){return f(this,null,function*(){this._log.info(`loadWasm ${i}, importObject: ${JSON.stringify(e)}`);let t=x(),s=null,n=null;if(z(WebAssembly.instantiateStreaming)&&!df(i)&&!uf(i)&&z(fetch))try{let o=fetch(i);s=(yield WebAssembly.instantiateStreaming(o,e)).instance}catch(o){n=o}if(!s)try{let o=yield this.download(i,{type:"arraybuffer"});s=(yield WebAssembly.instantiate(o,e)).instance}catch(o){n=o}if(s){let o=x()-t;return this._log.info(`loadedWasm ${i}, cost: ${o}ms`),D.addSuccessEvent({key:522701,cost:o}),s}throw this._log.error(`failed to loadWasm ${i}, error: ${n}`),D.addFailedEvent({key:522701,error:n}
${s.stack}`),!1}},r};var $o=new WeakMap;function Nl(r,i){return W((e,t)=>function(...s){var a,c;let n=(a=$o.get(this))==null?void 0:a.get(i(...s));n&&n>0&&clearTimeout(n);let o=window.setTimeout(()=>{e.apply(this,s)},r);$o.has(this)?(c=$o.get(this))==null||c.set(i(...s),o):$o.set(this,new Map([[i(...s),o]]))})}var vl="5.8.0";function ke(...r){return W((i,e)=>function(...t){try{Ho.call(this,r,t,e,this._name)}catch(s){return Promise.reject(s)}return i.apply(this,t)})}function od(...r){return W((i,e)=>function(...t){try{Ho.call(this,r,t,e,this._name)}catch(s){throw s}return i.apply(this,t)})}function Ho(r,i,e,t){if(he(r))for(let s=0;s<r.length;s++)Fo.call(this,{rule:r[s],value:i[s],key:r[s].name,fnName:e,className:t});else Fo.call(this,{rule:r,value:i[0],key:r.name,fnName:e,className:t})}function Fo({rule:r,value:i,key:e,fnName:t,className:s}){function n(c){return{code:P.INVALID_PARAMETER,extraCode:c,fnName:t,messageParams:{key:e,rule:r,value:i}}}if(g(i)){if(r.required)throw new L(n(5001));if(g(r.defaultValue)){z(r.validate)&&r.validate.call(this,i,e,t,s,this);return}i=r.defaultValue}if(Array.isArray(r.type)){let c=!1;for(let d=0;d<r.type.length;d++)r.type[d]===null&&i===null&&(c=!0),z(r.type[d])&&i instanceof r.type[d]&&(c=!0),Y(r.type[d])&&_e(i)===r.type[d].toLowerCase()&&(c=!0);if(!c)throw new L({code:P.INVALID_PARAMETER,extraCode:5002,fnName:t,messageParams:{key:e,rule:{type:r.type.map(d=>Cs(d)?Wn(d):Y(d)?d:_e(d))},value:i}})}else if(!g(r.type)&&_e(i)!==r.type)throw new L(n(5002));if(r.allowEmpty===!1){let c=ee(i)&&(i===0||Number.isNaN(i)),d=Y(i)&&i.trim()==="";if(c||d)throw new L(n(5003))}if(r.notLessThanZero&&ee(i)&&i<0)throw new L(n(5006));if(!g(r.min)&&ee(i)&&i<r.min)throw new L(n(5007));if(!g(r.max)&&ee(i)&&i>r.max)throw new L(n(5008));if(Y(r.instanceOf)){if(!i||i._name!==r.instanceOf)throw new L(n(5004))}else if(z(r.instanceOf)&&!(i instanceof r.instanceOf))throw new L(n(5004));if(Array.isArray(r.values)&&!r.values.includes(i))throw new L(n(5005));let{properties:o}=r;Ge(o)&&mt(i)&&Object.keys(o).forEach(c=>{Fo.call(this,{rule:o[c],value:i&&i[c],key:`${c}`,fnName:t,className:s})});let{arrayItem:a}=r;Ge(a)&&he(i)&&i.forEach((c,d)=>{Fo.call(this,{rule:a,value:c,key:`${e}[${d}]`,fnName:t,className:s})}),z(r.validate)&&r.validate.call(this,i,e,t,s,this)}function ne(r={}){let{getRemoteId:i=()=>"",replaceArg:e,getKVReportKey:t}=r;return W((s,n)=>function(...o){function a(l,m,p){if(p&&p.includes(l))return"hided";if(e){let _=e(...o);if(o[_.argIndex]===m)return _.value}if(m===o||l in o)return m;try{return m instanceof HTMLElement?`id: ${m.id} type:${_e(m)}`:(JSON.stringify(m),m)}catch(_){return`type:${_e(m)}`}}let c=this._log||S;o.length>0?c.info(`${n}() ${JSON.stringify(o,(l,m)=>a(l,m,["userSig","privateMapKey"]))}`):c.info(`${n}()`);let d=t?t(...o):ro[n];try{let l=s.apply(this,o),m=x();return As(l)?l.then(p=>(c.info(`${n}() success ${i.call(this,...o)}`),D.addSuccessEvent({key:d,cost:x()-m}),p)).catch(p=>{throw p=L.convertFrom.call(this,p,n,o.length===1?o[0]:o),c.error(`${n}() failed ${i.call(this,...o)} ${p} params: ${JSON.stringify(o,a)}`),D.addFailedEvent({key:d,error:p}),p}):(D.addSuccessEvent({key:d}),l)}catch(l){throw l=L.convertFrom.call(this,l,n),c.error(`${n}() failed ${l} params: ${JSON.stringify(o,a)}`),D.addFailedEvent({key:d,error:l}),l}})}var Go=r=>W((i,e)=>function(t,s){return f(this,null,function*(){let n=this._plugins.get(t);if(!n)throw this._log.error(`plugin ${String(t)} is not found`),new L({code:P.OPERATION_ABORT,message:`plugin ${String(t)} is not found`,fnName:e});return Ho.call(this,n.getValidateRule(r),[s],e,"TRTC"),i.call(this,n,s)})});var Wo=0,ad=class{constructor(i,e){u(this,"player");u(this,"publisher");u(this,"mixInput");this.mixInput=new br(e),i.url?(this.player=new Audio(i.url),this.player.crossOrigin="anonymous",this.publisher=new Audio(i.url),this.publisher.crossOrigin="anonymous",this.mixInput.replaceSource(this.publisher)):this.mixInput.replaceSource(i.track),this.mixInput.connect()}updateSettings(i){!this.player||(g(i.volume)||(this.volume=i.volume),g(i.loop)||(this.loop=i.loop),g(i.p
`),s=new Map;t.forEach((o,a)=>{/^a=rtcp-fb:/.test(o)&&t[a+1]&&!/^a=rtcp-fb:/.test(t[a+1])&&s.set(a+1,`${o.match(/^a=rtcp-fb:\d+/)[0]} rrtr`)});let n=[...s];for(let o=0;o<n.length;o++){let[a,c]=n[o];t.splice(a+o,0,c)}return t.join(`\r
`)}addSPSDescription(e){let t=ce(e);return t.media.forEach(s=>{s.type===h.VIDEO&&s.fmtp.forEach(n=>{n.config+=";sps-pps-idr-in-keyframe=1"})}),Ye(t)}removeSDESDescription(e){let t=["urn:ietf:params:rtp-hdrext:sdes:mid","urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id","urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id"],s=ce(e);return s.media.forEach(n=>{!n.ext||(n.ext=n.ext.filter(o=>!t.includes(o.uri)))}),Ye(s)}isSubscriptionStateNotChanged(e){return JSON.stringify(e)===JSON.stringify(this.subscribeState)}subscribe(e,t){return f(this,null,function*(){var s,n;try{if((((s=this._peerConnection)==null?void 0:s.connectionState)===se.NEW||((n=this._peerConnection)==null?void 0:n.connectionState)===se.CONNECTING)&&(yield this.waitForPeerConnectionConnected()),this.isSubscriptionStateNotChanged(e)){this._peerConnection||(this.initialize(),yield this.connect(e));return}if(this._log.info(`subscribe ${t} ${JSON.stringify(e)}`),this._peerConnection||this._isSDPExchanging){let o="subscribe_change";Object.values(e).find(a=>a===!0)||(o="unsubscribe"),yield this.sendSubscription(o,e)}else this.initialize(),yield this.connect(e)}catch(o){throw this._room.isJoined&&this.isStreamUnpublished(t)?(this._log.warn(`${o.message} ${JSON.stringify(this.muteState)}`),new b({code:A.REMOTE_STREAM_NOT_EXIST,message:`remote user ${this.userId} unpublished stream`})):o}})}unsubscribe(s){return f(this,arguments,function*({remoteTracks:e,streamType:t}){if(this._currentState==="CONNECTED"&&(t==="main"&&!this.isMainStreamSubscribed||t==="auxiliary"&&!this.isAuxStreamSubscribed)){this._log.info(`${t} stream already unsubscribed`);return}let n=v({},this.subscribeState);e.forEach(a=>{switch(a.mediaType){case 1:n.audio=!1;break;case 4:n.video=!1;break;case 8:n.smallVideo=!1;break;case 2:n.auxiliary=!1;break;default:break}});let o="subscribe_change";Object.values(n).find(a=>a===!0)||(o="unsubscribe"),this._log.info(`${o==="unsubscribe"?o:"subscribe"} ${t} [${zo(n)}]`),yield this.sendSubscription(o,n),o==="unsubscribe"&&(this.closePeerConnection(),this.emitConnectionStateChangedEvent("DISCONNECTED"))})}sendSubscription(e,t=this.subscribeState){let s={srcTinyId:this.tinyId,srcUserId:this.userId},n=j.UNSUBSCRIBE,o=V.UNSUBSCRIBE_RESULT;return e==="subscribe_change"&&(s={audio:t.audio,bigVideo:t.video,auxVideo:t.auxiliary,smallVideo:t.smallVideo,srcTinyId:this.tinyId},n=j.SUBSCRIBE_CHANGE,o=V.SUBSCRIBE_CHANGE_RESULT),this._signalChannel.sendWaitForResponse({command:n,data:s,responseCommand:o,timeout:1e4}).then(({data:a})=>{if(a.code!==0){let c=new b({code:a.code,message:k({key:M.ERROR_MESSAGE,data:{type:e,message:a.message}})});throw this._log.error(c),c}})}connect(){return f(this,arguments,function*(e=this.subscribeState){try{yield this.exchangeSDP(e),yield this.waitForPeerConnectionConnected()}catch(t){throw this.closePeerConnection(!0),t}})}exchangeSDP(e){return f(this,null,function*(){try{this._isSDPExchanging=!0,yield this.createOffer(),this._log.info("createOffer success, sending offer");let{type:t,sdp:s}=this._peerConnection.localDescription,n={type:t,sdp:s,srcUserId:this.userId,srcTinyId:this.tinyId,audio:e.audio,bigVideo:e.video,auxVideo:e.auxiliary,smallVideo:e.smallVideo},o=yield this._signalChannel.sendWaitForResponse({command:j.SUBSCRIBE,commandDesc:"exchange sdp",data:n,responseCommand:V.SUBSCRIBE_RESULT,timeout:ga});if(!this._peerConnection){let a=new b({code:A.INVALID_OPERATION,message:k({key:M.CONNECTION_CLOSED})});throw this._log.warn(a),a}yield this.onSubscribeResult(o),this._isSDPExchanging=!1}catch(t){throw this._isSDPExchanging=!1,t}})}createOffer(){return f(this,null,function*(){let e={voiceActivityDetection:!1};tt()&&this._sdpSemantics===pi?(this._peerConnection.addTransceiver(h.AUDIO,{direction:q.RECVONLY}),this._peerConnection.addTransceiver(h.VIDEO,{direction:q.RECVONLY}),this._peerConnection.addTransceiver(h.VIDEO,{direction:q.RECVONLY})):(e.offerToReceiveAudio=!0,e.offerToReceiveVideo=!0);let t=yield this._peerConnection.createOffer(e);if(t.sdp){let{isH264DecodeSupported:s}=yield Yn();s||(this._log.warn("remove h264 desc from sdp"),
`).map(d=>{if(d.match(new RegExp(`a=(${q.INACTIVE}|${q.RECVONLY}|${q.SENDONLY})`))&&a++,t.includes(a)){if(e===q.INACTIVE&&d.includes(`a=${q.RECVONLY}`))return n=!0,`a=${e}`;if(e===q.SENDONLY&&d.includes(`a=${q.INACTIVE}`))return n=!0,`a=${q.RECVONLY}`}return d}).join(`\r
`);n&&(this._log.info("updating answer"),yield this._peerConnection.setRemoteDescription({type:"answer",sdp:c}))})}removeTrackBySender(e){return f(this,null,function*(){if(!e.outMediaTrack)return;if(e.kind===h.VIDEO&&this.isNeedToResetOfferOrder()&&this.localMainAudioTrack){this.reset(),this.initialize(),yield this.publish({localAudioTrack:this.localMainAudioTrack,isAuxiliary:!1});return}let t=this._peerConnection.getSenders().find(s=>s.track===e.outMediaTrack);t&&(this.removeSender(t),e.kind===h.VIDEO&&e.small&&this._peerConnection.getSenders().forEach(s=>{s.track&&s.track.kind===h.VIDEO&&this.removeSender(s)})),yield this.updateOffer("remove",e.outMediaTrack)})}replaceTrack(e){return f(this,null,function*(){var o;let t=(o=this._peerConnection)==null?void 0:o.getSenders();if(!t||t.length===0||!e.mediaTrack)return!1;let s;if(tt()?s=e.kind===h.AUDIO?t[0]:t[1]:s=t.find(a=>a.track&&a.track.kind===e.kind),!s)return!1;let n=e===this.localAuxAudioTrack||e===this.localAuxVideoTrack;return this._log.info(`is replacing ${e.kind} track on ${n?h.AUXILIARY:h.MAIN} stream`),e.kind===h.AUDIO?yield s.replaceTrack(e.outMediaTrack):e.kind===h.VIDEO&&(n?t[3]&&(yield t[3].replaceTrack(e.outMediaTrack)):yield s.replaceTrack(e.outMediaTrack)),!0})}updateOffer(e,t){return f(this,null,function*(){try{let s=yield this._peerConnection.createOffer(Yl);te&&s.sdp&&(s.sdp=this.setSDPDirection(s.sdp,"sendrecv")),yield this._peerConnection.setLocalDescription(s);let n=this.updateMediaSettings(),o={action:e,trackId:t.id,kind:t.kind===h.VIDEO?"bigVideo":t.kind,type:"offer",sdp:this._peerConnection.localDescription.sdp,constraintConfig:n,state:this.publishState};this._log.info("createOffer success, sending updated offer to remote server"),this._log.debug(`updatedOffer: ${o.sdp}`);let a=yield this._signalChannel.sendWaitForResponse({command:j.PUBLISH_CHANGE,data:o,responseCommand:V.UPDATE_OFFER_RESULT,timeout:Ea,commandDesc:"update offer"}),{code:c,message:d}=a.data;c!==0&&this.checkPublishResultCode(c,d),yield this.acceptAnswer(a.data.data),s.sdp&&this.updateSSRC(s.sdp)}catch(s){throw this._log.error(s),s}})}setBandwidth(o){return f(this,arguments,function*({bandwidth:e,type:t,videoType:s,sdp:n}){if(!Ms())return n?t===h.VIDEO?this.updateVideoBandwidthRestriction(n,e,s):this.updateAudioBandwidthRestriction(n,e):void 0;let a,c=this._peerConnection.getSenders();if(tt()){let d=0;t===h.VIDEO&&(s===h.SMALL?d=2:s===h.AUXILIARY?d=3:d=1),a=c[d]}else a=c.find(d=>d.track&&d.track.kind===t);if(a){let d=a.getParameters();(!d.encodings||d.encodings.length===0)&&(d.encodings=[{}]),d.encodings[0].maxBitrate=e*1e3;try{return yield a.setParameters(d),this._log.info(`${s||""}${t} bandwidth ${e} kbps`),n}catch(l){if(this._log.info(`failed to set bandwidth by setting maxBitrate: ${l}`),n)return t===h.VIDEO?this.updateVideoBandwidthRestriction(n,e,s):this.updateAudioBandwidthRestriction(n,e)}}return n})}updateVideoBandwidthRestriction(e,t,s){let n="AS";te&&(n="TIAS",t=t*1e3);let o=0,a=-1;return s===h.SMALL?o=1:s===h.AUXILIARY&&(o=2),e=e.replace(/m=video (.*)\r\nc=IN (.*)\r\n/g,c=>(a+=1,a===o?`${c}b=${n}:${t}\r
`:c)),e}updateAudioBandwidthRestriction(e,t){let s="AS";return te&&(s="TIAS",t=t*1e3),e=e.replace(/m=audio (.*)\r\nc=IN (.*)\r\n/,`m=audio $1\r
c=IN $2\r
b=${s}:${t}\r
`),e}removeBandwidthRestriction(e){return e.replace(/b=AS:.*\r\n/,"").replace(/b=TIAS:.*\r\n/,"")}removeVideoOrientation(e){return e.replace(/urn:3gpp:video-orientation/,"")}connect(){return f(this,null,function*(){try{yield this.exchangeSDP(),yield this.waitForPeerConnectionConnected()}catch(e){throw this.closePeerConnection(!0),this.uninstallEvents(),e}})}exchangeSDP(){return f(this,null,function*(){try{yield this.createOffer(),this._log.info("createOffer success, sending offer to remote server"),yield this.doExchangeSDP()}catch(e){throw e}})}createOffer(){return f(this,null,function*(){try{let e=yield this._peerConnection.createOffer(Yl);yield this._peerConnection.setLocalDescription(e),e.sdp&&this.updateSSRC(e.sdp)}catch(e){throw e}})}doExchangeSDP(){let e={command:j.PUBLISH,responseCommand:V.PUBLISH_RESULT,data:{type:this._peerConnection.localDescription.type,sdp:this.removeVideoOrientation(this._peerConnection.localDescription.sdp),screen:this.localMainVideoTrack instanceof Xe||this.localAuxVideoTrack instanceof Xe,state:this.publishState,constraintConfig:this._mediaSettings},enableLog:!1};return this._log.debug(`sending sdp offer: ${e.data.sdp}`),this._signalChannel.sendWaitForResponse(e).then(t=>{let{code:s,message:n,data:o}=t.data;return s===0?this.acceptAnswer(o):this.checkPublishResultCode(s,n)})}setSDPDirection(e,t,s="all"){let n=ce(e);return n.media.forEach(o=>{(s==="all"||o.type===s)&&(o.direction=t)}),Ye(n)}acceptAnswer(e){return f(this,null,function*(){var t,s,n,o,a;try{let c;if(this._publishingLocalAudioTrack||this._publishingLocalVideoTrack||this.isMainStreamPublished){let m=((t=this._publishingLocalVideoTrack)==null?void 0:t.profile.bitrate)||((s=this.localMainVideoTrack)==null?void 0:s.profile.bitrate),p=((n=this._publishingLocalAudioTrack)==null?void 0:n.profile.bitrate)||((o=this.localMainAudioTrack)==null?void 0:o.profile.bitrate);if(m){let _=this._isPublishingAux?h.AUXILIARY:h.BIG;c=yield this.setBandwidth({bandwidth:m,type:h.VIDEO,sdp:c,videoType:_})}p&&(c=yield this.setBandwidth({bandwidth:p,type:h.AUDIO,sdp:c}))}if(c=this.removeVideoOrientation(e.sdp),(a=this._publishingLocalVideoTrack)!=null&&a.small){let{smallStreamConfig:m}=this._room;c=yield this.setBandwidth({bandwidth:this._publishingLocalVideoTrack.small.bitrate||m.bitrate,type:h.VIDEO,videoType:h.SMALL,sdp:c})}let l={type:e.type,sdp:c};yield this._peerConnection.setRemoteDescription(l),this._log.debug(`accepted answer: ${c}`)}catch(c){throw this._log.error(`failed to accept remote answer ${c}`),c}})}sendMutedFlag(e){var n,o,a;if(e===this.localAuxAudioTrack||e===this.localAuxVideoTrack)return;let s={audio:!!((n=this.localMainAudioTrack)!=null&&n.muted),bigVideo:!!((o=this.localMainVideoTrack)!=null&&o.muted),auxVideo:!!((a=this.localAuxVideoTrack)!=null&&a.muted)};this._log.info(`send muted state: ${JSON.stringify(s)}`),this._signalChannel.send(j.UPDATE_MUTE_STAT,s)}getIsReconnecting(){return this._isReconnecting}reconnect(){return f(this,null,function*(){if(!(Ie(Cd.prototype,this,"beforeReconnect").call(this)<0))try{yield this._signalChannel.sendWaitForResponse({command:j.UNPUBLISH,responseCommand:V.UNPUBLISH_RESULT,enableLog:!1}),this.closePeerConnection(),this.initialize(),this.isMainStreamPublished&&(yield this.publish({localAudioTrack:this.localMainAudioTrack,localVideoTrack:this.localMainVideoTrack,isAuxiliary:!1})),this.isAuxStreamPublished&&(yield this.publish({localAudioTrack:this.localAuxAudioTrack,localVideoTrack:this.localAuxVideoTrack,isAuxiliary:!0})),this._log.warn("reconnect() uplink reconnect successfully"),this.stopReconnection()}catch(t){let s=Mt(this._reconnectionCount);this._log.warn(`reconnect() timeout, try again after ${s/1e3}s`),this._reconnectionTimer=setTimeout(()=>{this.clearReconnectionTimer(),this.reconnect()},s)}})}handleConnectionStateChange(e){e.state==="CONNECTED"&&(this.localMainVideoTrack||this._publishingLocalVideoTrack&&!this._isPublishingAux)&&T.emit(E.SEND_FIRST_VIDEO_FRAME,{room:this._room})}updateSSRC(e){try{ce(e).media.forEach((s,n)=>{if(s.type===h.AUDIO){let o=s.ssrcs&&s.ssrcs[0];o&&(this.ssrc
in vec2 a_position;
in vec2 a_texCoord;
out vec2 v_texCoord;
void main() {
gl_Position = vec4(a_position.x, a_position.y, 0, 1);
v_texCoord = a_texCoord;
}`,kf=`#version 300 es
precision highp float;
uniform sampler2D u_texture;
uniform sampler2D mask;
in vec2 v_texCoord;
out vec4 outColor;
void main() {
outColor = vec4(texture(u_texture, v_texCoord).rgb, texture(mask, v_texCoord).a);
}`,ea=class extends Or{constructor(e,t){super(e,t.input,{name:"vb",create2d:!1,useDefaultProgram:!1,useFbo:!1,createTexture:!0,logger:e.log});u(this,"ready",!1);u(this,"_bgTexture");u(this,"_waterMarkTexture");u(this,"_lastMaskTexture");u(this,"_lastMaskFbo");u(this,"_textureValid",!1);u(this,"_selfieTextureValid",!1);u(this,"_selfieSegmentation");u(this,"wasm");u(this,"_prePrograme");u(this,"_segmentationMask");u(this,"_weixin",!1);t.selfieSegmentation&&(this._selfieSegmentation=t.selfieSegmentation,this._selfieSegmentation.onResults=this.onPredict.bind(this)),this.init(t).catch(()=>this.context.destroy(new Error("selfie_segmentation init faild")))}init(e){return f(this,null,function*(){var n,o;let t=e.Wasm,s=this.context.ctx;if(this.wasm=new t.AllIn1(s),this.wasm.blurRadius=e.blurRadius||3,this.wasm.mirror=!!e.mirror,this.wasm.vbMode=e.bg==="blur"?1:e.bg instanceof HTMLImageElement?2:e.bg==="green"?3:0,e.waterMark){let{x:a,y:c,width:d,height:l}=e.waterMark;this.wasm.setWaterMark(a,c,d,l)}if(e.beautyParams){let{beauty:a,brightness:c,ruddy:d}=e.beautyParams;this.wasm.setBeauty(a,c,d,(n=this.context._canvas)==null?void 0:n.width,(o=this.context._canvas)==null?void 0:o.height)}if(this.program=this.wasm.init(),this.useProgram(),this.setAttributes(this.positionBuffer,this.texCoordBuffer),s.uniform1i(s.getUniformLocation(this.program,"mask"),1),e.bg instanceof HTMLImageElement&&(s.uniform1i(s.getUniformLocation(this.program,"bg"),2),this._bgTexture=this.createTexture(e.bg)),e.waterMark&&(s.uniform1i(s.getUniformLocation(this.program,"waterMark"),3),this._waterMarkTexture=this.createTexture(e.waterMark.image)),s.uniform1i(s.getUniformLocation(this.program,"lastMask"),4),this._weixin){let a=this.context.createShader(s.FRAGMENT_SHADER,kf),c=this.context.createShader(s.VERTEX_SHADER,Mf);this._prePrograme=this.context.createProgram(c,a),s.useProgram(this._prePrograme),this.setAttributes(this.positionBuffer,this.texCoordBuffer),s.uniform1i(s.getUniformLocation(this._prePrograme,"mask"),1)}this.ready=!0})}onPredict(e){var s;let t=this.context.ctx;this._weixin&&(this._lastMaskTexture||(this._lastMaskTexture=this.createTexture(this.image),this._lastMaskFbo=this.createFramebuffer(this._lastMaskTexture))),this.useProgram(),this._weixin?this.useTexture():this==null||this._selfieSegmentation.bindTexture(),t.activeTexture(t.TEXTURE1),(s=this._selfieSegmentation)==null||s.bindTexture2d(e),t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,this._bgTexture||null),t.activeTexture(t.TEXTURE3),t.bindTexture(t.TEXTURE_2D,this._waterMarkTexture||null),this.useBufferFrame(),t.drawArrays(t.TRIANGLE_STRIP,0,4),this._segmentationMask=e,this.totalFrames++}render(e){var a,c,d;let t=this.context.ctx;if(typeof this.image.getVideoPlaybackQuality=="function"&&!bt){let m=this.image.getVideoPlaybackQuality().totalVideoFrames;if(this._totalFrames===m)return!1;this._totalFrames=m,this.dropFrames=this._totalFrames-this.totalFrames}let{videoWidth:s,videoHeight:n}=this.image;this.image.width=s,this.image.height=n;let o=!1;if(this.totalFrames)this._weixin?this.useTexture():this==null||this._selfieSegmentation.bindTexture(),o=this._selfieTextureValid,this._selfieTextureValid=!0;else{if(this.program)this.useTexture();else return!1;o=this._textureValid,this._textureValid=!0}return this.width!==s||this.height!==n||!o?(this.resize(s,n),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,this.image)):t.texSubImage2D(t.TEXTURE_2D,0,0,0,t.RGBA,t.UNSIGNED_BYTE,this.image),this.ready&&(this._weixin&&(t.useProgram(this._prePrograme),this.useTexture(),this._segmentationMask&&(t.activeTexture(t.TEXTURE1),(a=this._selfieSegmentation)==null||a.bindTexture2d(this._segmentationMask),t.bindFramebuffer(t.FRAMEBUFFER,this._lastMaskFbo||null)),t.drawArrays(t.TRIANGLE_STRIP,0,4),(c=this._selfieSegmentation)==null||c.bindTexture(),this._segmentationMask?t.copyTexSubImage2D(t.TEXTURE_2D,0,0,0,0,0,s,n):t.copyTexImage2D(t.TEXTURE_2D,0,t.RGBA,0,0,s,n,0)),(d=this._selfieSegmentation)==null||d.send(s,n)),this.totalFrames||(t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,this.
offer: ${e==null?void 0:e.sdp}`),s}})}connect(e,t=!1){return f(this,null,function*(){try{if(this.currentState==="CONNECTED")return;let s=x(),n={type:"answer",sdp:ch({serverAbility:e,clientAbility:this.clientAbility,offerSDP:this._peerConnection.localDescription.sdp,enableCustomMessage:this._enableCustomMessage})};this._serverAbility=e,yield this.setAnswer(n),yield this.waitForPeerConnectionConnected(),t||D.addSuccessEvent({key:521703,cost:x()-s})}catch(s){let n=s instanceof b&&s.code===A.API_CALL_ABORTED;throw n||this._log.error(`connect failed: ${s}`,e),this.reset(),!n&&!this.isReconnecting&&(D.addFailedEvent({key:521703,error:s}),this.emitConnectionStateChangedEvent("DISCONNECTED"),this.startReconnection()),s}})}reconnect(){return f(this,null,function*(){if(this._reconnectionTimer!==-1){this._log.warn("reconnect() is reconnecting, ignore current reconnection");return}if(!this._signalChannel.isConnected){this._log.warn("reconnect() wait signal channel is connected"),this._signalChannel.once(fe.CONNECTED,this.reconnect,this);return}try{this.reconnectionCount++,this._log.warn(`reconnect() trying [${this.reconnectionCount}]`),this.reset();let e=yield this.initialize(),t=yield this._signalChannel.sendWaitForResponse({command:j.REBUILD_PEER_CONNECTION,responseCommand:V.REBUILD_PEER_CONNECTION_RES,data:{ability:e},enableLog:!1});if(t.data.code!==0)throw new b({code:t.data.code,message:t.data.message});yield this.connect(t.data.data.ability,!0),D.addSuccessEvent({key:521704}),this._log.warn("reconnect() success"),this.stopReconnection(),T.emit(E.SPC_RECONNECTED,{room:this._room}),this.emit("spc-reconnected")}catch(e){if(!this.isReconnecting)return;if(e!=null&&e.message.includes("timeout")){let t=Mt(this.reconnectionCount);this._log.warn(`reconnect() timeout, try again after ${t/1e3}s`),this._reconnectionTimer=window.setTimeout(()=>{this.clearReconnectionTimer(),this.reconnect()},t)}else this._log.error(`reconnect() failed ${e==null?void 0:e.code} ${e}`),D.addFailedEvent({key:521704,error:e}),this.reconnectionCount>=jt()&&this._log.warn(`SDK has tried reconnect for ${jt()} times, but all failed, please check your network`),this.stopReconnection(),this.emitConnectionStateChangedEvent("DISCONNECTED"),this.emit("error")}})}getPeerConnection(){return this._peerConnection}startReconnection(){return f(this,null,function*(){this._log.warn("start reconnect"),this._updateSDPPromise=null,this.emitConnectionStateChangedEvent("RECONNECTING"),yield this.reconnect()})}stopReconnection(){this.isReconnecting&&(this._log.info("stop reconnect"),this.reconnectionCount=0,this.clearReconnectionTimer(),this._signalChannel.off(fe.CONNECTED,this.reconnect,this))}checkPeerConnectionToReconnect(){var e;!this.isReconnecting&&((e=this._peerConnection)==null?void 0:e.connectionState)===se.CLOSED&&this.startReconnection()}clearReconnectionTimer(){this._reconnectionTimer!==-1&&(clearTimeout(this._reconnectionTimer),this._reconnectionTimer=-1)}onConnectionStateChange(e){let t=this._peerConnection.iceConnectionState,s=this.getDTLSTransportState();this._log.info(`connectionState: ${e.target.connectionState} ICE: ${t} DTLS: ${s}`),e.target.connectionState===se.CONNECTING&&(this.stat.peerConnectionStartTime===0&&(this.stat.peerConnectionStartTime=Date.now()),this.emitConnectionStateChangedEvent("CONNECTING")),(e.target.connectionState===se.FAILED||e.target.connectionState===se.CLOSED)&&(this.emitConnectionStateChangedEvent("DISCONNECTED"),this.startReconnection()),(e.target.connectionState===se.CONNECTED||e.target.connectionState===se.COMPLETED)&&(this.stat.peerConnectionEndTime===0&&(this.stat.peerConnectionEndTime=Date.now()),T.emit(E.SINGLE_CONNECTION_STAT,{room:this._room,stat:{ice:this.stat.iceEndTime-this.stat.iceStartTime,dtls:this.stat.dtlsEndTime-this.stat.dtlsStartTime,peerConnection:this.stat.peerConnectionEndTime-this.stat.peerConnectionStartTime}}),this.logSelectedCandidate(),this.emitConnectionStateChangedEvent("CONNECTED"))}getDTLSTransportState(){if(!this._peerConnection)return ot;let e=null;return!Ri()||this._peerConnection.getSenders().length==
next offer: ${this.filterSDPDirection(e==null?void 0:e.sdp)}`),this._log.warn(`current answer: ${this.filterSDPDirection((a=this._peerConnection.remoteDescription)==null?void 0:a.sdp)}
next answer: ${this.filterSDPDirection(t)}`),this._log.warn(`offer: ${e==null?void 0:e.sdp}`),this._log.warn(`answer: ${t}`),this._log.warn(`transceivers: ${JSON.stringify(this._peerConnection.getTransceivers().map(({mid:d,currentDirection:l,direction:m,stopped:p})=>({mid:d,currentDirection:l,direction:m,stopped:p})))}`),this._log.warn(`parsedAnswer: ${JSON.stringify(this._parsedAnswer)}`),this._isSDPLogged=!0),this._updateSDPPromise=null,n(c)}})),this._updateSDPPromise}filterSDPDirection(e=""){return ce(e).media.map(s=>s.direction)}setOffer(e){return this._log.info("setting offer"),this._log.debug(e.sdp),this._peerConnection.setLocalDescription({type:"offer",sdp:dh(e.sdp,this.clientAbility,this._serverAbility)})}setAnswer(e){return this._log.info("setting answer"),this._log.debug(e.sdp),this._peerConnection.setRemoteDescription(e)}useHWEncoder(e=!0,t){return f(this,null,function*(){if(!this._peerConnection||!this._parsedAnswer||!this._serverAbility)return;let s=!1,n=[];g(t)?n=this._parsedAnswer.media.slice(1,4):t===2?n.push(this._parsedAnswer.media[1]):t===3?n.push(this._parsedAnswer.media[2]):t===7&&n.push(this._parsedAnswer.media[3]),n.forEach(o=>{var a;if(o.type===h.VIDEO){let c;e&&this.is42001fSupported?c=this.clientAbility.video.codecs.find(d=>d.fmtp.includes("42001f")):e||(c=this._serverAbility.video.codecs.find(d=>d.codec.toLowerCase()===(this._serverAbility.useVp8?"vp8":"h264"))),c&&!((a=o.payloads)!=null&&a.includes(String(c.payload)))&&(o.fmtp=[],o.payloads="",o.rtp=[],o.rtcpFb=[],Gr(o,c),s=!0)}}),s&&(this._log.warn(`use ${e?"hw":"sw"} encoder`),yield this.setOffer(this._peerConnection.localDescription),yield this.setAnswer({type:"answer",sdp:Ye(this._parsedAnswer)}))})}sendDataChannelMessage(e){var t;(t=this._datachannel)==null||t.send(e)}reset(){var e;(e=this._peerConnection)==null||e.close(),this._waitForPCConnectedPromise=null,this._parsedAnswer=null}close(){this._log.info("close pc"),this.abortMap.forEach(e=>fu(e.abort)&&e.abort("destroy")),this.abortMap.clear(),this.reset(),this.emitConnectionStateChangedEvent("DISCONNECTED"),this._downlinkMIDMap.clear(),this.stopReconnection(),this.removeAllListeners()}getReceiversByUserId(e){if(!this._peerConnection)return[];let t=this._peerConnection.getReceivers();return(this._downlinkMIDMap.get(e)||[]).map(s=>t[s])}};y([go("reconnect")],ui.prototype,"startReconnection",1),y([si(r=>r.userId)],ui.prototype,"addDownlink",1),y([si(r=>r)],ui.prototype,"removeDownlink",1),y([Bt(!0)],ui.prototype,"updateSDP",1);var Ld=class{constructor(i){u(this,"tag");u(this,"len");u(this,"data");let e=new DataView(i);this.tag=e.getUint16(),this.len=e.getUint16(2),this.data=new Uint8Array(i).slice(4,2+2+this.len).buffer}},xd=class{constructor(i){u(this,"tinyId");u(this,"data");let e=new DataView(i),t=0,s=[];for(;t<e.byteLength;){let n=e.getUint16(t+2),o=new Ld(new Uint8Array(i).slice(t,t+2+2+n).buffer);s.push(o),t+=2+2+n}s.forEach(n=>{n.tag===1?this.tinyId=new TextDecoder().decode(n.data):n.tag===2&&(this.data=n.data)})}},hh=new Set;function ir(){let r=Math.floor(Math.random()*4294967296);return hh.has(r)?ir():(hh.add(r),r)}var _h=Se(Ne());var rr=class extends _h.default{constructor(e){super();u(this,"userId");u(this,"tinyId");u(this,"_sdpSemantics");u(this,"_isUplink");u(this,"_room");u(this,"_log");u(this,"_currentState","DISCONNECTED");u(this,"_prevTime",-1);this.userId=e.userId,this.tinyId=e.tinyId,this._room=e.room,this._sdpSemantics=e.room.sdpSemantics,this._isUplink=e.isUplink,this._log=S.createLogger({id:"n",userId:this._room.userId,remoteUserId:this._isUplink?void 0:this.userId,sdkAppId:this._room.sdkAppId,isLocal:this._isUplink})}get _peerConnection(){var e;return((e=this.singlePC)==null?void 0:e.getPeerConnection())||null}get singlePC(){return this._room.singlePC}get _signalChannel(){return this._room.signalChannel}close(e){this._log.info("close connection"),this.emit("closed",e)}emitConnectionStateChangedEvent(e){return e===this._currentState?!1:(T.emit(E.PEER_CONNECTION_STATE_CHANGED,{room:this._room,prevState:this._currentState,state:e,remoteUserId:this._isUplink?void 0:thi
`).map(d=>{if(d.match(new RegExp(`a=(${q.INACTIVE}|${q.RECVONLY}|${q.SENDONLY})`))&&a++,t.includes(a)){if(e===q.INACTIVE&&d.includes(`a=${q.RECVONLY}`))return n=!0,`a=${e}`;if(e===q.SENDONLY&&d.includes(`a=${q.INACTIVE}`))return n=!0,`a=${q.RECVONLY}`}return d}).join(`\r
`);n&&(this._log.info("updating answer"),yield this._peerConnection.setRemoteDescription({type:"answer",sdp:c}))})}replaceTrack(e){return f(this,null,function*(){var o;let t=(o=this._peerConnection)==null?void 0:o.getSenders(),s=e.outMediaTrack||e.mediaTrack;if(!t||t.length===0||!s||t.find(a=>a.track===s))return!1;let n=e===this.localAuxAudioTrack||e===this.localAuxVideoTrack;return this._log.info(`is replacing ${s.kind} track ${s.id} on ${n?h.AUXILIARY:h.MAIN} stream`),s.kind===h.AUDIO&&t[0]&&(yield t[0].replaceTrack(s)),s.kind===h.VIDEO&&(!n&&t[1]&&(yield t[1].replaceTrack(s)),n&&t[3]&&(yield t[3].replaceTrack(s))),!0})}setBandwidth(n){return f(this,arguments,function*({bandwidth:e,type:t,videoType:s}){if(this.singlePC){let o={};t===h.AUDIO?o.audio=e:s==="big"?o.bigVideo=e:s==="small"?o.smallVideo=e:o.auxVideo=e,yield this.singlePC.setBandwidth(o)}})}sendMutedFlag(e){e===this.localAuxAudioTrack||e===this.localAuxVideoTrack||(this._log.info(`send muted state: ${JSON.stringify(this.muteState)}`),this._signalChannel.sendWaitForResponseWithRetry({command:j.UPDATE_MUTE_STAT,responseCommand:V.MUTE_RESULT,data:this.muteState,retries:3}).catch(()=>{}))}handleConnectionStateChange(e){e.state==="CONNECTED"&&(this.localMainVideoTrack||this._publishingLocalVideoTrack&&!this._isPublishingAux)&&T.emit(E.SEND_FIRST_VIDEO_FRAME,{room:this._room})}getVideoTrackId(e=h.VIDEO){if(this._peerConnection){let t=this._peerConnection.getSenders();if(e===h.AUXILIARY&&t[3]&&t[3].track)return t[3].track.id;if(e===h.VIDEO&&t[1]&&t[1].track)return t[1].track.id}if(this.localMainVideoTrack&&e===h.VIDEO){let t=this.localMainVideoTrack.mediaTrack;if(t)return t.id}if(this.localAuxVideoTrack&&e===h.AUXILIARY){let t=this.localAuxVideoTrack.mediaTrack;if(t)return t.id}return""}getSSRC(){return this.ssrc}checkPublishResultCode(e,t){if(e!==0)throw e===xi?(this._log.error(Ae.NOT_SUPPORTED_H264ENCODE),new b({code:A.NOT_SUPPORTED_H264,message:k({key:M.NOT_SUPPORTED_H264ENCODE})})):new b({code:A.UNKNOWN,message:k({key:M.SIGNAL_RESPONSE_FAILED,data:{signalResponse:V.PUBLISH_RESULT,code:e,message:t}})})}onSinglePCReconnected(){return f(this,null,function*(){this.isMainStreamPublished&&(this._log.warn("republish main stream"),yield this.publish({localAudioTrack:this.localMainAudioTrack,localVideoTrack:this.localMainVideoTrack,isAuxiliary:!1})),this.isAuxStreamPublished&&(this._log.warn("republish aux stream"),yield this.publish({localAudioTrack:this.localAuxAudioTrack,localVideoTrack:this.localAuxVideoTrack,isAuxiliary:!0}))})}},wd=Pd;function Eh(r){return Object.keys(r).filter(i=>r[i])}var Wr=class extends rr{constructor(e){super(w(v({},e),{isUplink:!1}));u(this,"_flag",0);u(this,"role","anchor");u(this,"remoteAudioTrack");u(this,"remoteVideoTrack");u(this,"remoteAuxiliaryTrack");u(this,"ssrc",{audio:0,video:0,videoRtx:0,auxiliary:0,auxiliaryRtx:0});this.flag=e.flag,this.remoteAudioTrack=new ni(this._room,this),this.remoteVideoTrack=new gt(this._room,this),this.remoteAuxiliaryTrack=new Mr(this._room,this),this.initialize()}get videoCodec(){var e;return((e=this.singlePC)==null?void 0:e.downlinkVideoCodec)||"h264"}get subscribeState(){return{audio:this.remoteAudioTrack.isSubscribed||this.remoteAudioTrack.isSubscribing,video:this.remoteVideoTrack.isBig&&(this.remoteVideoTrack.isSubscribed||this.remoteVideoTrack.isSubscribing),smallVideo:this.remoteVideoTrack.isSmall&&(this.remoteVideoTrack.isSubscribed||this.remoteVideoTrack.isSubscribing),auxiliary:this.remoteAuxiliaryTrack.isSubscribed||this.remoteAuxiliaryTrack.isSubscribing}}get muteState(){return Ai(this.flag,this.userId)}get flag(){return this._flag}set flag(e){var t,s,n;e!==this._flag&&(this._flag=e,(t=this.remoteAudioTrack)==null||t.onFlagChanged(),(s=this.remoteVideoTrack)==null||s.onFlagChanged(),(n=this.remoteAuxiliaryTrack)==null||n.onFlagChanged())}get hasMainStream(){return this.muteState.hasAudio||this.muteState.hasVideo||this.muteState.hasSmall}get hasAuxStream(){return this.muteState.hasAuxiliary}get isMainStreamSubscribed(){return(this.subscribeState.audio||this.subscribeState.video||this.subscribe