zego-express-engine-webrtc
Version:
zego webrtc express sdk
1 lines • 1.9 MB
JavaScript
!function(t,i){if("object"==typeof exports&&"object"==typeof module)module.exports=i(require("long"),require("protobufjs/minimal"),require("zego-express-logger"),require("localforage"));else if("function"==typeof define&&define.amd)define(["long","protobufjs/minimal","zego-express-logger","localforage"],i);else{var n="object"==typeof exports?i(require("long"),require("protobufjs/minimal"),require("zego-express-logger"),require("localforage")):i(t.long,t["protobufjs/minimal"],t["zego-express-logger"],t.localforage);for(var e in n)("object"==typeof exports?exports:t)[e]=n[e]}}(Object("undefined"!=typeof self?self:this),function(t,i,n,e){return function(){var r={166:function(t,i,n){"use strict";var e,r,s,o;n.d(i,{PP:function(){return o},SC:function(){return s}}),function(t){t[t.NONE=0]="NONE",t[t.MEN_TO_CHILD=1]="MEN_TO_CHILD",t[t.MEN_TO_WOMEN=2]="MEN_TO_WOMEN",t[t.WOMEN_TO_CHILD=3]="WOMEN_TO_CHILD",t[t.WOMEN_TO_MEN=4]="WOMEN_TO_MEN",t[t.FOREIGNER=5]="FOREIGNER",t[t.OPTIMUS_PRIME=6]="OPTIMUS_PRIME",t[t.ANDROID=7]="ANDROID",t[t.ETHEREAL=8]="ETHEREAL",t[t.MALE_MAGNETIC=9]="MALE_MAGNETIC",t[t.FEMALE_FRESH=10]="FEMALE_FRESH",t[t.MAJOR_C=11]="MAJOR_C",t[t.MINOR_A=12]="MINOR_A",t[t.HARMONIC_MINOR=13]="HARMONIC_MINOR",t[t.FEMALE_ENERGETIC=14]="FEMALE_ENERGETIC",t[t.RICHNESS=15]="RICHNESS",t[t.MUFFLED=16]="MUFFLED",t[t.ROUNDNESS=17]="ROUNDNESS",t[t.FALSETTO=18]="FALSETTO",t[t.FULLNESS=19]="FULLNESS",t[t.CLEAR=20]="CLEAR",t[t.HIGHLY_RESONANT=21]="HIGHLY_RESONANT",t[t.LOUD_CLEAR=22]="LOUD_CLEAR"}(e||(e={})),function(t){t[t.None=0]="None",t[t.SoftRoom=1]="SoftRoom",t[t.LargeRoom=2]="LargeRoom",t[t.ConcertHall=3]="ConcertHall",t[t.Valley=4]="Valley",t[t.RecordingStudio=5]="RecordingStudio",t[t.Basement=6]="Basement",t[t.KTV=7]="KTV",t[t.Popular=8]="Popular",t[t.Rock=9]="Rock",t[t.VocalConcert=10]="VocalConcert",t[t.GramoPhone=11]="GramoPhone",t[t.EnhancedKTV=12]="EnhancedKTV"}(r||(r={})),function(t){t[t.None=0]="None",t[t.Local=1]="Local",t[t.Publish=2]="Publish",t[t.All=3]="All"}(s||(s={})),function(t){t[t.AI=0]="AI",t[t.AIBalanced=1]="AIBalanced",t[t.AIAggressive=2]="AIAggressive"}(o||(o={}))},327:function(t,i,n){"use strict";n.d(i,{L:function(){return r}});var e=n(4872);function r(t,i){if(t&&!(0,e.dr)(t)&&t.zegoStream){if(i.info("cu.gs type:zego"),(0,e.dr)(t.stream))return t.stream;throw new Error("The ZegoLocalStream type requires first calling the capture api to capture the stream")}return t}},477:function(){},743:function(t,i,n){"use strict";n.d(i,{RangeAudio:function(){return tt}});var e=n(8899),r=n(8866),s=function(){function t(){}return t.generateEls=function(t){if(void 0===t&&(t=30),this.elements.length>=t)this.elements.forEach(function(t){t.dom.play().catch(function(t){})});else{var i=Array(t-this.elements.length).fill(0).map(function(t,i){var n=r.VJ.createElement("audio");return n.muted=!0,n.setAttribute("autoplay","autoplay"),n.setAttribute("playsInline","playsInline"),n.id="audio"+i,{dom:n,id:i,used:!1}});this.elements=this.elements.concat(i)}},t.useAudioEl=function(){0===this.elements.length&&this.generateEls();var t=this.elements.find(function(t){return!t.used});return t&&(t.used=!0),t},t.stopUsingAudioEl=function(t){var i=this.elements[t];i&&(i.dom.onpause=null,i.dom.onerror=null,i.dom.muted=!0,i.used=!1)},t.elements=[],t}(),o=function(t,i,n,e){return new(n||(n=Promise))(function(r,s){function o(t){try{a(e.next(t))}catch(t){s(t)}}function u(t){try{a(e.throw(t))}catch(t){s(t)}}function a(t){var i;t.done?r(t.value):(i=t.value,i instanceof n?i:new n(function(t){t(i)})).then(o,u)}a((e=e.apply(t,i||[])).next())})},u=function(t,i){var n,e,r,s,o={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return s={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function u(u){return function(a){return function(u){if(n)throw new TypeError("Generator is already executing.");for(;s&&(s=0,u[0]&&(o=0)),o;)try{if(n=1,e&&(r=2&u[0]?e.return:u[0]?e.throw||((r=e.return)&&r.call(e),0):e.next)&&!(r=r.call(e,u[1])).done)return r;switch(e=0,r&&(u=[2&u[0],r.value]),u[0]){case 0:case 1:r=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,e=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(r=o.trys,(r=r.length>0&&r[r.length-1])||6!==u[0]&&2!==u[0])){o=0;continue}if(3===u[0]&&(!r||u[1]>r[0]&&u[1]<r[3])){o.label=u[1];break}if(6===u[0]&&o.label<r[1]){o.label=r[1],r=u;break}if(r&&o.label<r[2]){o.label=r[2],o.ops.push(u);break}r[2]&&o.ops.pop(),o.trys.pop();continue}u=i.call(t,o)}catch(t){u=[6,t],e=0}finally{n=r=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,a])}}},a="zc.ra.3",c=function(){function t(t,i){this.un=t,this.an=i,this.rtcConn=null,this.loopbackConn=null,this.destStream=new MediaStream,this.onError=null}return t.prototype.bindStream=function(t,i){var n,e;return o(this,void 0,void 0,function(){var r,s,o,c,h,f,l=this;return u(this,function(u){switch(u.label){case 0:return i&&(this.un=i),r=["completed","connected"],this.rtcConn&&this.loopbackConn&&r.includes(this.rtcConn.connectionState)?(s=null===(n=this.rtcConn)||void 0===n?void 0:n.getSenders().find(function(t){var i;return"audio"===(null===(i=t.track)||void 0===i?void 0:i.kind)}),t.getTracks().forEach(function(t){"audio"===t.kind&&(null==s||s.replaceTrack(t))}),[3,10]):[3,1];case 1:this.rtcConn=new RTCPeerConnection,this.loopbackConn=new RTCPeerConnection,o={offerVideo:!0,offerAudio:!0,offerToReceiveAudio:!1,offerToReceiveVideo:!1},this.rtcConn.onicecandidateerror=function(t){l.an.warn(a+" ".concat(l.un," loopback in ice error: ").concat(JSON.stringify(t)))},this.loopbackConn.onicecandidateerror=function(t){l.an.warn(a+" ".concat(l.un," loopback out ice error: ").concat(JSON.stringify(t)))},this.rtcConn.onicecandidate=function(t){var i,n=t.candidate;n&&(l.an.info(a+" ".concat(l.un," loopback add out candidate: ").concat(n)),null===(i=l.loopbackConn)||void 0===i||i.addIceCandidate(new RTCIceCandidate(n)))},this.loopbackConn.onicecandidate=function(t){var i,n=t.candidate;n&&(l.an.info(a+" ".concat(l.un," loopback add in candidate: ").concat(n)),null===(i=l.rtcConn)||void 0===i||i.addIceCandidate(new RTCIceCandidate(n)))},window.setTimeout(function(){l.rtcConn&&l.loopbackConn&&(r.includes(l.rtcConn.iceConnectionState)&&r.includes(l.loopbackConn.iceConnectionState)?l.an.info(a+" ".concat(l.un," loopback connect ok.")):(l.an.warn(a+" ".concat(l.un," loopback connect failed. in state: ").concat(l.rtcConn.iceConnectionState,", out state: ").concat(l.loopbackConn.iceConnectionState)),l.close(),l.onError&&l.onError("time out")))},2e3),this.loopbackConn.ontrack=function(t){var i=t.track;l.an.info(a+" ".concat(l.un," loopback receive track")),l.replaceTrack(i)},t.getTracks().find(function(i){var n;if("audio"===i.kind)return null===(n=l.rtcConn)||void 0===n||n.addTrack(i,t),!0}),u.label=2;case 2:return u.trys.push([2,9,,10]),[4,this.rtcConn.createOffer(o)];case 3:return c=u.sent(),[4,this.rtcConn.setLocalDescription(c)];case 4:return u.sent(),[4,this.loopbackConn.setRemoteDescription(c)];case 5:return u.sent(),[4,this.loopbackConn.createAnswer()];case 6:return(h=u.sent()).sdp=null===(e=h.sdp)||void 0===e?void 0:e.replace(/useinbandfec=/,"stereo=1;useinbandfec="),[4,this.loopbackConn.setLocalDescription(h)];case 7:return u.sent(),[4,this.rtcConn.setRemoteDescription(h)];case 8:return u.sent(),this.an.info(a+" ".concat(this.un," loopback set sdp completed.")),[3,10];case 9:return f=u.sent(),this.an.error(a+" ".concat(this.un," loopback connect failed.").concat(f)),this.close(),this.onError&&this.onError("connect failed"),this.onError=null,[3,10];case 10:return[2,this.destStream]}})})},t.prototype.replaceTrack=function(t){var i=this;"audio"===t.kind&&(this.destStream.getTracks().forEach(function(t){i.destStream.removeTrack(t)}),this.destStream.addTrack(t))},t.prototype.close=function(){var t=this,i=this.rtcConn,n=this.loopbackConn;this.destStream.getTracks().forEach(function(i){t.destStream.removeTrack(i)}),null==i||i.close(),null==n||n.close(),this.rtcConn=null,this.loopbackConn=null},t}();var h=n(4872),f=n(6493),l=function(t,i,n,e){return new(n||(n=Promise))(function(r,s){function o(t){try{a(e.next(t))}catch(t){s(t)}}function u(t){try{a(e.throw(t))}catch(t){s(t)}}function a(t){var i;t.done?r(t.value):(i=t.value,i instanceof n?i:new n(function(t){t(i)})).then(o,u)}a((e=e.apply(t,i||[])).next())})},d=function(t,i){var n,e,r,s,o={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return s={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function u(u){return function(a){return function(u){if(n)throw new TypeError("Generator is already executing.");for(;s&&(s=0,u[0]&&(o=0)),o;)try{if(n=1,e&&(r=2&u[0]?e.return:u[0]?e.throw||((r=e.return)&&r.call(e),0):e.next)&&!(r=r.call(e,u[1])).done)return r;switch(e=0,r&&(u=[2&u[0],r.value]),u[0]){case 0:case 1:r=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,e=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(r=o.trys,(r=r.length>0&&r[r.length-1])||6!==u[0]&&2!==u[0])){o=0;continue}if(3===u[0]&&(!r||u[1]>r[0]&&u[1]<r[3])){o.label=u[1];break}if(6===u[0]&&o.label<r[1]){o.label=r[1],r=u;break}if(r&&o.label<r[2]){o.label=r[2],o.ops.push(u);break}r[2]&&o.ops.pop(),o.trys.pop();continue}u=i.call(t,o)}catch(t){u=[6,t],e=0}finally{n=r=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,a])}}},v="zc.ra.5";var m,p=function(){function t(t,i){this.an=t,this.userID="base"+(new Date).getTime(),this.isHide=!1,this.distance=null,this.maxDistance=1e3,this.position=null,this.speaker="",this.audioEl=null,this.sourceNode=null,this.isPlaying=!1,this.config={needLoopback:!0,useGain:!0,playOnAudioContext:!1,useWebAudio:!0},this.volume=1,this.gainNode=null,this.isSpatial=!1,this.panner=null,this.audioCtx=i.audioCtx,this.isSpatial=i.isSpatial,this.setMaxDistance((0,h.Cs)(i.maxDistance)?i.maxDistance:1e5),this.destNode=this.audioCtx.createMediaStreamDestination(),this.setVolume(i.volume),this.setSpeaker(i.speaker).catch(function(t){}),this.inBackground(i.isHide)}return t.prototype.setPosition=function(t){this.an.info(v+" ".concat(this.userID," set position: ")+t),this.position=t,this.panner&&(void 0!==this.panner.positionX?(this.panner.positionX.value=t[1],this.panner.positionY.value=t[2],this.panner.positionZ.value=-t[0]):this.panner.setPosition(t[1],t[2],-t[0]))},t.prototype.getDistanceFromListener=function(t){return this.distance=function(t,i){if(!i||!t)return null;var n=[t[0]-i[0],t[1]-i[1],t[2]-i[2]];return Math.sqrt(Math.pow(n[0],2)+Math.pow(n[1],2)+Math.pow(n[2],2))}(this.position,t.position),this.distance},t.prototype.setMaxDistance=function(t){this.maxDistance=t,this.panner&&(t<10&&(t=10),this.panner.maxDistance=2.6*t)},t.prototype.setVolume=function(t){isNaN(t)||(this.volume=t,this.gainNode&&(this.gainNode.gain.value=this.volume))},t.prototype.setSpeaker=function(t){var i;return l(this,void 0,void 0,function(){var n,e,r;return d(this,function(s){switch(s.label){case 0:if(!(0,h.QP)(t))return[2];if(this.speaker=t,!(n=null===(i=this.audioEl)||void 0===i?void 0:i.dom))return[3,10];if(!(e=n.setSinkId))return[3,8];s.label=1;case 1:return s.trys.push([1,6,,7]),this.config.playOnAudioContext?[3,3]:[4,e.call(n,t||"")];case 2:return s.sent(),[3,5];case 3:return[4,e.call(n,"")];case 4:s.sent(),s.label=5;case 5:return this.an.info(v+" ".concat(this.userID," set speaker success. id: ").concat(t,".")),[3,7];case 6:throw r=s.sent(),this.an.error(v+" ".concat(this.userID," set speaker failed. id: ").concat(t," error: ").concat(r,".")),r;case 7:return[3,9];case 8:throw"setting speaker not support.";case 9:return[3,11];case 10:this.an.info(v+" ".concat(this.userID," no element for set speaker.")),s.label=11;case 11:return[2]}})})},t.prototype.initPanner=function(){if(!this.panner){var t=function(t,i,n){var e=n||[0,0,0],r=t.createPanner(),s=t.createGain();return r.panningModel="HRTF",r.distanceModel="linear",r.refDistance=1,r.maxDistance=2.6*i||1,r.rolloffFactor=1,r.coneOuterGain=.4,void 0!==r.positionX?(r.positionX.value=e[1],r.positionY.value=e[2],r.positionZ.value=-e[0]):r.setPosition(e[1],e[2],-e[0]),{panner:r,gainNode:s}}(this.audioCtx,this.maxDistance,this.position),i=t.gainNode;this.panner=t.panner,this.gainNode=i,i.gain.value=this.volume}},t.prototype.changeRenderConfig=function(t,i,n,e){var r,s,o,u,a;return void 0===i&&(i=!1),void 0===n&&(n=!1),void 0===e&&(e=!0),l(this,void 0,void 0,function(){var h,l,m,p,g,b,_,y,w,S,E,k,O=this;return d(this,function(d){switch(d.label){case 0:return i||this.isSpatial!==t?(this.isSpatial=t,h=(0,f.H8)()&&(0,f.Fr)(),[4,Y()]):[2];case 1:return l=d.sent(),m="Windows"===l.platform&&l.majorPlatformVersion>=13,p=this.isHide&&(m||h),g="running"!==this.audioCtx.state,e&&(p||g)&&(this.an.warn("".concat(v," ").concat(this.userID," stop web audio. system: ").concat(l.platform," ").concat(l.majorPlatformVersion)),e=!1),this.config.useWebAudio=e,b=(0,f.$t)(),_=b.includes("safari")&&!b.includes("chrome"),y=b.includes("micromessenger")&&new RegExp(/(iphone|ipad|ipod|ios)/i).test(b),e||this.stream||(n=!0),this.config.playOnAudioContext=n,this.initPanner(),this.isPlaying&&this.sourceNode?(this.lastNode&&this.lastNode.disconnect(),w=this.sourceNode,this.sourceNode.disconnect(),null===(r=this.panner)||void 0===r||r.disconnect(),null===(s=this.gainNode)||void 0===s||s.disconnect(),this.gainNode?(e&&(this.config.useGain&&(w=this.sourceNode.connect(this.gainNode)),this.panner&&t&&(w=w.connect(this.panner))),w.connect(n?this.audioCtx.destination:this.destNode),this.lastNode=w,this.position&&this.setPosition(this.position),this.an.info(v+" '".concat(this.userID,"' play ").concat(t?"3d":"normal"," stream on ").concat(n?"audio ctx":"element")),(S=null===(o=this.audioEl)||void 0===o?void 0:o.dom)?(S.onpause=function(){O.an.warn(v+" ".concat(O.streamID," audio paused"))},S.onerror=function(t){O.an.warn(v+" ".concat(O.streamID," audio error, ").concat(t))},n?(this.stream&&S.srcObject!==this.stream&&(S.srcObject=this.stream,S.muted=!0,S.oncanplay=function(){S.play().then(function(){O.an.info(v+" ".concat(O.userID," ctx autoplay success.")),O.checkPlayStatus()}).catch(function(t){O.an.warn(v+" ".concat(O.userID," ctx autoplay failed."))})}),[3,6]):[3,2]):[3,6]):[3,6]):[3,6];case 2:return E=this.destNode.stream,(k=this.config.needLoopback&&!y&&!_)&&this.loopbackConn&&(this.loopbackConn.close(),this.loopbackConn.onError=null),e||!this.stream?[3,3]:(this.an.info("".concat(v," ").concat(this.userID," stop audio api")),this.sourceNode.disconnect(),null===(u=this.panner)||void 0===u||u.disconnect(),null===(a=this.gainNode)||void 0===a||a.disconnect(),E=this.stream,[3,5]);case 3:return k&&E?(this.loopbackConn=this.loopbackConn||new c(this.streamID||"",this.an),this.loopbackConn.onError=function(t){O.an.warn(v+" ".concat(O.userID," loopback failed! ").concat(t)),O.changeRenderConfig(O.isSpatial,!0,!0)},[4,this.loopbackConn.bindStream(E,this.streamID||void 0)]):[3,5];case 4:return E=d.sent(),[3,5];case 5:S.muted=!0,S.srcObject=E,this.setSpeaker(this.speaker).catch(function(t){}),S.oncanplay=function(){if(S){S.muted=!1;var t=function(t){O.an.error(v+" ".concat(O.userID," autoplay failed. error: ").concat(t)),O.changeRenderConfig(O.isSpatial,!0,!0)};S.play().then(function(){(null==S?void 0:S.paused)?t("audio paused"):(O.an.info(v+" ".concat(O.userID," element autoplay success.")),O.checkPlayStatus())}).catch(function(i){t(i)})}},d.label=6;case 6:return[2]}})})},t.prototype.checkPlayStatus=function(){var t=this;setTimeout(function(){var i;if(t.isPlaying){var n=null===(i=t.audioEl)||void 0===i?void 0:i.dom,e=t.audioCtx.state;!n||n.paused||n.muted&&!t.config.playOnAudioContext||"running"!==e?(t.an.warn("".concat(v," ").concat(t.userID," play detection is abnormal. audio ctx:").concat(e,", paused:").concat(null==n?void 0:n.paused,", muted:").concat(null==n?void 0:n.muted)),"running"!==e&&(t.audioCtx.resume(),setTimeout(function(){t.an.warn("".concat(v," ").concat(t.userID," play resume. audio ctx:").concat(e,", paused:").concat(null==n?void 0:n.paused,", muted:").concat(null==n?void 0:n.muted))},1e3))):t.an.info("".concat(v," ").concat(t.userID," play detection is fine"))}},2e3)},t.prototype.inBackground=function(t,i){void 0===t&&(t=!1),void 0===i&&(i=!1),this.isHide!==t&&(this.isHide=t,t||this.config.useWebAudio||this.changeRenderConfig(this.isSpatial,!0))},t}(),g=(m=function(t,i){return m=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,i){t.__proto__=i}||function(t,i){for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])},m(t,i)},function(t,i){if("function"!=typeof i&&null!==i)throw new TypeError("Class extends value "+String(i)+" is not a constructor or null");function n(){this.constructor=t}m(t,i),t.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}),b=function(t,i,n,e){return new(n||(n=Promise))(function(r,s){function o(t){try{a(e.next(t))}catch(t){s(t)}}function u(t){try{a(e.throw(t))}catch(t){s(t)}}function a(t){var i;t.done?r(t.value):(i=t.value,i instanceof n?i:new n(function(t){t(i)})).then(o,u)}a((e=e.apply(t,i||[])).next())})},_=function(t,i){var n,e,r,s,o={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return s={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function u(u){return function(a){return function(u){if(n)throw new TypeError("Generator is already executing.");for(;s&&(s=0,u[0]&&(o=0)),o;)try{if(n=1,e&&(r=2&u[0]?e.return:u[0]?e.throw||((r=e.return)&&r.call(e),0):e.next)&&!(r=r.call(e,u[1])).done)return r;switch(e=0,r&&(u=[2&u[0],r.value]),u[0]){case 0:case 1:r=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,e=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(r=o.trys,(r=r.length>0&&r[r.length-1])||6!==u[0]&&2!==u[0])){o=0;continue}if(3===u[0]&&(!r||u[1]>r[0]&&u[1]<r[3])){o.label=u[1];break}if(6===u[0]&&o.label<r[1]){o.label=r[1],r=u;break}if(r&&o.label<r[2]){o.label=r[2],o.ops.push(u);break}r[2]&&o.ops.pop(),o.trys.pop();continue}u=i.call(t,o)}catch(t){u=[6,t],e=0}finally{n=r=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,a])}}},y="zc.ra.1",w=function(t){function i(i,n,r){var s=t.call(this,i,r)||this;return s.an=i,s.audioTrack=null,s.zegoRTC=r.zegoRTC,s.userID=n.userID,s.teamID=n.teamID,s.raMode=void 0!==n.raMode?n.raMode:e.kf.World,n.position&&(s.position=n.position),s}return g(i,t),Object.defineProperty(i.prototype,"sendMode",{get:function(){return void 0!==this._sendMode?this._sendMode:this.raMode===e.kf.World?e.UF.All:e.UF.Team},set:function(t){this._sendMode=t},enumerable:!1,configurable:!0}),i.prototype.checkTrackChanged=function(){var t;if(this.stream){var i=this.stream.getAudioTracks()[0];i&&i!==this.audioTrack&&(this.an.info(y+" retry play success, render stream."),null===(t=this.sourceNode)||void 0===t||t.disconnect(),this.sourceNode=this.audioCtx.createMediaStreamSource(this.stream),this.changeRenderConfig(this.isSpatial,!0),this.audioTrack=i)}},i.prototype.startPlayingAudio=function(t){var i,n;return b(this,void 0,void 0,function(){var e,o,u;return _(this,function(a){switch(a.label){case 0:if(!this.streamID)return[2];a.label=1;case 1:return a.trys.push([1,3,,4]),t&&this.an.info(y+" ".concat(this.streamID," ")+t),this.isPlaying=!0,e=this,[4,this.zegoRTC.startPlayingStream(this.streamID)];case 2:return e.stream=a.sent(),this.audioTrack=this.stream.getAudioTracks()[0],[3,4];case 3:if(o=a.sent(),this.isPlaying=!1,1103049===o.code)return[2];throw o;case 4:return this.audioEl=this.audioEl||s.useAudioEl()||null,this.an.info(y+" ".concat(this.streamID," start using audio el ").concat(null===(i=this.audioEl)||void 0===i?void 0:i.id)),(u=null===(n=this.audioEl)||void 0===n?void 0:n.dom)||(this.an.error(y+" not enough audio elements"),u=r.VJ.createElement("audio"),this.audioEl={id:-1,dom:u,used:!0},u.setAttribute("autoplay","autoplay")),u.muted=!0,this.stream&&(this.sourceNode=this.audioCtx.createMediaStreamSource(this.stream)),this.sourceNode?[4,this.changeRenderConfig(this.isSpatial,!0)]:[3,6];case 5:a.sent(),a.label=6;case 6:return"suspended"===this.audioCtx.state&&this.audioCtx.resume(),[2]}})})},i.prototype.stopPlayingAudio=function(t){this.isPlaying&&this.streamID?(this.an.info(y+" ".concat(this.streamID," ")+t),this.zegoRTC.stopPlayingStream(this.streamID),this.isPlaying=!1):this.streamID&&this.an.info(y+" ".concat(this.streamID," not playing, ")+t),this.stream=void 0,this.sourceNode&&(this.sourceNode.disconnect(),this.sourceNode=null);var i=this.audioEl,n=null==i?void 0:i.dom;n&&(n.srcObject=null,n.parentNode&&n.parentNode.removeChild(n));var e=(null==i?void 0:i.id)||-1;i&&e>=0&&(s.stopUsingAudioEl(e),this.an.info(y+" ".concat(this.streamID," stop using audio el ").concat(e))),this.audioEl=null,this.loopbackConn&&(this.loopbackConn.close(),this.loopbackConn.onError=null)},i.prototype.isSpeakInTeam=function(t){var i=![this.teamID,t].includes(void 0)&&""!==this.teamID&&this.teamID===t,n=[e.UF.Team,e.UF.All].includes(this.sendMode);return i&&n},i}(p),S=function(){var t=function(i,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,i){t.__proto__=i}||function(t,i){for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])},t(i,n)};return function(i,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function e(){this.constructor=i}t(i,n),i.prototype=null===n?Object.create(n):(e.prototype=n.prototype,new e)}}(),E=function(t,i,n,e){return new(n||(n=Promise))(function(r,s){function o(t){try{a(e.next(t))}catch(t){s(t)}}function u(t){try{a(e.throw(t))}catch(t){s(t)}}function a(t){var i;t.done?r(t.value):(i=t.value,i instanceof n?i:new n(function(t){t(i)})).then(o,u)}a((e=e.apply(t,i||[])).next())})},k=function(t,i){var n,e,r,s,o={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return s={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function u(u){return function(a){return function(u){if(n)throw new TypeError("Generator is already executing.");for(;s&&(s=0,u[0]&&(o=0)),o;)try{if(n=1,e&&(r=2&u[0]?e.return:u[0]?e.throw||((r=e.return)&&r.call(e),0):e.next)&&!(r=r.call(e,u[1])).done)return r;switch(e=0,r&&(u=[2&u[0],r.value]),u[0]){case 0:case 1:r=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,e=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(r=o.trys,(r=r.length>0&&r[r.length-1])||6!==u[0]&&2!==u[0])){o=0;continue}if(3===u[0]&&(!r||u[1]>r[0]&&u[1]<r[3])){o.label=u[1];break}if(6===u[0]&&o.label<r[1]){o.label=r[1],r=u;break}if(r&&o.label<r[2]){o.label=r[2],o.ops.push(u);break}r[2]&&o.ops.pop(),o.trys.pop();continue}u=i.call(t,o)}catch(t){u=[6,t],e=0}finally{n=r=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,a])}}},O="zc.ra.4",I=function(t){function i(i,n,e){var r=t.call(this,i,e)||this;return r.an=i,r.media=n.media,r.position=n.position||null,r.createSource(),r.userID="custom"+(new Date).getTime(),r.config={needLoopback:!1,useGain:!1,playOnAudioContext:!1,useWebAudio:!0},r}return S(i,t),i.prototype.createSource=function(){var t=this;if((0,f.Fr)())return this.an.info("".concat((0,f.Fr)()," ").concat(this.userID," not create src.")),void(this.changeRenderConfig=function(){return E(t,void 0,void 0,function(){return k(this,function(t){return[2]})})});this.media&&(this.an.info(O+" create el source."),this.sourceNode||(this.sourceNode=this.audioCtx.createMediaElementSource(this.media)),null!==this.distance&&this.distance<this.maxDistance&&this.startPlayingAudio("in range"))},i.prototype.startPlayingAudio=function(t){var i,n;return E(this,void 0,void 0,function(){var e;return k(this,function(o){switch(o.label){case 0:return this.isPlaying?(this.an.info(O+" ".concat(this.userID," is already playing")),[2]):(t&&this.an.info(O+" vocal ".concat(this.userID," play for ").concat(t)),this.isPlaying=!0,(0,f.Fr)()?(this.media.muted=!1,[2]):(this.audioEl=this.audioEl||s.useAudioEl()||null,this.an.info(O+" ".concat(this.userID," start using audio el ").concat(null===(i=this.audioEl)||void 0===i?void 0:i.id)),(e=null===(n=this.audioEl)||void 0===n?void 0:n.dom)||(this.an.error(O+" ".concat(this.userID," not enough audio elements")),e=r.VJ.createElement("audio"),this.audioEl={id:-1,dom:e,used:!0},e.setAttribute("autoplay","autoplay")),e.muted=!0,e.setAttribute("autoplay","autoplay"),e.setAttribute("id","zg-audio-source-"+this.userID),this.sourceNode?[4,this.changeRenderConfig(this.isSpatial,!0)]:[3,2]));case 1:o.sent(),o.label=2;case 2:return"suspended"===this.audioCtx.state&&this.audioCtx.resume(),[2]}})})},i.prototype.stopPlayingAudio=function(t){if(void 0===t&&(t=""),this.isPlaying&&(this.an.info(O+" vocal ".concat(this.userID," stop for ")+t),this.isPlaying=!1),(0,f.Fr)())this.media.muted=!0;else{this.sourceNode&&this.sourceNode.disconnect();var i=this.audioEl,n=null==i?void 0:i.dom;n&&(n.srcObject=null,n.parentNode&&n.parentNode.removeChild(n));var e=(null==i?void 0:i.id)||-1;i&&e>=0&&(s.stopUsingAudioEl(e),this.an.info(O+" ".concat(this.userID," stop using audio el ").concat(e))),this.audioEl=null}},i.prototype.checkIfCanPlay=function(t){var i=this.distance=this.getDistanceFromListener(t);null===i||i>this.maxDistance||0===this.maxDistance?this.stopPlayingAudio("out of range. ".concat(i," > ").concat(this.maxDistance)):this.startPlayingAudio("in range")},i}(p),R=function(){var t=function(i,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,i){t.__proto__=i}||function(t,i){for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])},t(i,n)};return function(i,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function e(){this.constructor=i}t(i,n),i.prototype=null===n?Object.create(n):(e.prototype=n.prototype,new e)}}(),A=function(t,i,n,e){return new(n||(n=Promise))(function(r,s){function o(t){try{a(e.next(t))}catch(t){s(t)}}function u(t){try{a(e.throw(t))}catch(t){s(t)}}function a(t){var i;t.done?r(t.value):(i=t.value,i instanceof n?i:new n(function(t){t(i)})).then(o,u)}a((e=e.apply(t,i||[])).next())})},T=function(t,i){var n,e,r,s,o={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return s={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function u(u){return function(a){return function(u){if(n)throw new TypeError("Generator is already executing.");for(;s&&(s=0,u[0]&&(o=0)),o;)try{if(n=1,e&&(r=2&u[0]?e.return:u[0]?e.throw||((r=e.return)&&r.call(e),0):e.next)&&!(r=r.call(e,u[1])).done)return r;switch(e=0,r&&(u=[2&u[0],r.value]),u[0]){case 0:case 1:r=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,e=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(r=o.trys,(r=r.length>0&&r[r.length-1])||6!==u[0]&&2!==u[0])){o=0;continue}if(3===u[0]&&(!r||u[1]>r[0]&&u[1]<r[3])){o.label=u[1];break}if(6===u[0]&&o.label<r[1]){o.label=r[1],r=u;break}if(r&&o.label<r[2]){o.label=r[2],o.ops.push(u);break}r[2]&&o.ops.pop(),o.trys.pop();continue}u=i.call(t,o)}catch(t){u=[6,t],e=0}finally{n=r=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,a])}}},C="zc.ra.4",z=function(t){function i(i,n,e){var r=t.call(this,i,e)||this;return r.an=i,r.streamView=n.streamView,r.position=n.position||null,r.createSource(),r.userID="stream"+(new Date).getTime(),r.config={needLoopback:!1,useGain:!1,playOnAudioContext:!1,useWebAudio:!0},r.streamView.on("_trackChange",function(t,i){"audio"===t&&(i?r.createSource(!0):r.an.error("".concat(C," ").concat(r.userID," audio track lost")))}),r}return R(i,t),i.prototype.createSource=function(t){var i=this;if(void 0===t&&(t=!1),(0,f.Fr)())return this.an.info("".concat(C," ").concat(this.userID," not create src.")),this.changeRenderConfig=function(){return A(i,void 0,void 0,function(){return T(this,function(t){return[2]})})},!1;if(!this.streamView)return!1;if(this.an.info(C+" create view source. trackChanged: "+t),!this.sourceNode||t){var n=this.streamView.v.getAudioNodeAndStopRender();if(!n)return this.an.error(C+" create view source failed."),!1;this.sourceNode&&this.sourceNode.disconnect(),this.sourceNode=n,this.changeRenderConfig(this.isSpatial,!0)}return null!==this.distance&&this.distance<this.maxDistance&&this.startPlayingAudio("in range"),!0},i.prototype.startPlayingAudio=function(t){var i,n;return A(this,void 0,void 0,function(){var e;return T(this,function(o){switch(o.label){case 0:return this.isPlaying?(this.an.info(C+" ".concat(this.userID," is already playing")),[2]):(t&&this.an.info(C+" vocal ".concat(this.userID," play for ").concat(t)),this.isPlaying=!0,(0,f.Fr)()?(this.streamView.setAudioMuted(!1),[2]):(this.audioEl=this.audioEl||s.useAudioEl()||null,this.an.info(C+" ".concat(this.userID," start using audio el ").concat(null===(i=this.audioEl)||void 0===i?void 0:i.id)),(e=null===(n=this.audioEl)||void 0===n?void 0:n.dom)||(this.an.error(C+" ".concat(this.userID," not enough audio elements")),e=r.VJ.createElement("audio"),this.audioEl={id:-1,dom:e,used:!0},e.setAttribute("autoplay","autoplay")),e.muted=!0,e.setAttribute("autoplay","autoplay"),e.setAttribute("id","zg-audio-source-"+this.userID),this.sourceNode?[4,this.changeRenderConfig(this.isSpatial,!0)]:[3,2]));case 1:o.sent(),o.label=2;case 2:return"suspended"===this.audioCtx.state&&this.audioCtx.resume(),[2]}})})},i.prototype.stopPlayingAudio=function(t){if(void 0===t&&(t=""),this.isPlaying&&(this.an.info(C+" vocal ".concat(this.userID," stop for ")+t),this.isPlaying=!1),(0,f.Fr)())this.streamView.setAudioMuted(!0);else{this.sourceNode&&this.sourceNode.disconnect();var i=this.audioEl,n=null==i?void 0:i.dom;n&&(n.srcObject=null,n.parentNode&&n.parentNode.removeChild(n));var e=(null==i?void 0:i.id)||-1;i&&e>=0&&(s.stopUsingAudioEl(e),this.an.info(C+" ".concat(this.userID," stop using audio el ").concat(e))),this.audioEl=null}},i.prototype.checkIfCanPlay=function(t){var i=this.distance=this.getDistanceFromListener(t);null===i||i>this.maxDistance||0===this.maxDistance?this.stopPlayingAudio("out of range. ".concat(i," > ").concat(this.maxDistance)):this.startPlayingAudio("in range")},i}(p),D=n(166),N=function(){function t(){this.cn={}}return t.getInstance=function(){return t.instance||(t.instance=new t),t.instance},t.prototype.addEventHandler=function(t,i){if(this.cn[t]||(this.cn[t]=[]),!(0,h.JO)(i))throw new Error("Params callBack is not a Function");return-1==this.cn[t].indexOf(i)&&this.cn[t].push(i),!0},t.prototype.removeEventHandler=function(t,i){return!!this.cn[t]&&(this.cn[t]=i?this.cn[t].filter(function(t){return t!==i}):[],!0)},t.prototype.emit=function(t){for(var i=[],n=1;n<arguments.length;n++)i[n-1]=arguments[n];this.cn[t]&&this.cn[t].forEach(function(n){try{setTimeout(function(){n.apply(void 0,i)},0)}catch(i){console.error('Fail to execute callback of event "'.concat(t,'" : ').concat(i))}})},t.prototype.reset=function(){this.cn={}},t}(),P=N,M=function(t,i,n,e){return new(n||(n=Promise))(function(r,s){function o(t){try{a(e.next(t))}catch(t){s(t)}}function u(t){try{a(e.throw(t))}catch(t){s(t)}}function a(t){var i;t.done?r(t.value):(i=t.value,i instanceof n?i:new n(function(t){t(i)})).then(o,u)}a((e=e.apply(t,i||[])).next())})},x=function(t,i){var n,e,r,s,o={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return s={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function u(u){return function(a){return function(u){if(n)throw new TypeError("Generator is already executing.");for(;s&&(s=0,u[0]&&(o=0)),o;)try{if(n=1,e&&(r=2&u[0]?e.return:u[0]?e.throw||((r=e.return)&&r.call(e),0):e.next)&&!(r=r.call(e,u[1])).done)return r;switch(e=0,r&&(u=[2&u[0],r.value]),u[0]){case 0:case 1:r=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,e=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(r=o.trys,(r=r.length>0&&r[r.length-1])||6!==u[0]&&2!==u[0])){o=0;continue}if(3===u[0]&&(!r||u[1]>r[0]&&u[1]<r[3])){o.label=u[1];break}if(6===u[0]&&o.label<r[1]){o.label=r[1],r=u;break}if(r&&o.label<r[2]){o.label=r[2],o.ops.push(u);break}r[2]&&o.ops.pop(),o.trys.pop();continue}u=i.call(t,o)}catch(t){u=[6,t],e=0}finally{n=r=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,a])}}};var j,q=function(){function t(t,i){var n=this;this.raMode=e.kf.World,this.recvRange=null,this.position=null,this.forwardAxis=[1,0,0],this.upAxis=[0,0,1],this.audioStream=null,this.enableMic=!1,this.isPublishing=!1,this.streamID=null,this.isDenoise=!1,this.denoiseMode=D.PP.AI,this.voiceChanger=null,this.voiceParam=null,this.isUpdated=!0,this.zegoRTC=i,this.audioCtx=t,this.audioListener=this.audioCtx.listener,this.eventHandler=P.getInstance(),this.zegoRTC.on("publisherStateUpdate",function(t){var i=t.state,r=t.errorCode,s=t.extendedData,o=t.streamID.match(/(.*)_(.*)/);if(3===(null==o?void 0:o.length)){if(n.userID!==o[1])return;"NO_PUBLISH"===i?(n.isPublishing=!1,n.stopPublishingStream()):(n.isPublishing=!0,n.isUpdated||(n.an.info(y+" resend stream info"),n.updateSteamExtraInfo())),n.eventHandler.emit("microphoneStateUpdate",{NO_PUBLISH:e.eI.Off,PUBLISH_REQUESTING:e.eI.TurningOn,PUBLISHING:e.eI.On}[i],r,s)}}),this.zegoRTC.on("deviceError",function(t,i){return M(n,void 0,void 0,function(){var n,e;return x(this,function(r){switch(r.label){case 0:return this.an.info(y+" device fail ".concat(t," ").concat(i," ").concat(!!this.audioStream," ").concat(this.micID)),this.audioStream?[4,this.zegoRTC.enumDevices()]:[2];case 1:return n=r.sent(),e=n.microphones,this.micID||0!==e.length?1106009!==t?[3,3]:[4,this.zegoRTC.useAudioDevice(this.audioStream,this.micID||e[0].deviceID)]:[2];case 2:r.sent(),r.label=3;case 3:return[2]}})})})}return Object.defineProperty(t.prototype,"recvMode",{get:function(){return void 0!==this._recvMode?this._recvMode:[e.kf.World,e.kf.SecretTeam].includes(this.raMode)?e.ju.All:e.ju.Team},set:function(t){this._recvMode=t},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"sendMode",{get:function(){return void 0!==this._sendMode?this._sendMode:this.raMode===e.kf.World?e.UF.All:e.UF.Team},set:function(t){this._sendMode=t},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"an",{get:function(){return this.zegoRTC.logger},enumerable:!1,configurable:!0}),t.getInstance=function(i,n){return t.instance||(t.instance=new t(i,n)),t.instance},t.prototype.updateSelfPosition=function(t,i,n){this.position=t,this.forwardAxis=i,Array.isArray(n)&&(this.upAxis=n),this.updateListenerEffect()},t.prototype.updateListenerEffect=function(){this.position&&(this.audioListener.positionX?(this.audioListener.positionX.value=this.position[1],this.audioListener.positionY.value=this.position[2],this.audioListener.positionZ.value=-this.position[0]):this.audioListener.setPosition(this.position[1],this.position[2],-this.position[0]),this.audioListener.forwardX?(this.audioListener.forwardX.value=this.forwardAxis[1],this.audioListener.forwardY.value=this.forwardAxis[2],this.audioListener.forwardZ.value=-this.forwardAxis[0],this.audioListener.upX.value=this.upAxis[1],this.audioListener.upY.value=this.upAxis[2],this.audioListener.upZ.value=-this.upAxis[0]):this.audioListener.setOrientation(this.forwardAxis[1],this.forwardAxis[2],-this.forwardAxis[0],this.upAxis[1],this.upAxis[2],-this.upAxis[0]))},t.prototype.startPublishingStream=function(){var t=this;this.enableMic?this.an.warn(y+" mic is already enabled"):(this.enableMic=!0,this.zegoRTC.createStream({camera:{video:!1,audio:!0,audioInput:this.micID||void 0,audioBitrate:30}}).then(function(i){return M(t,void 0,void 0,function(){return x(this,function(t){if(!this.userID)throw this.zegoRTC.destroyStream(i),this.enableMic=!1,Error("Enable mic failed. Please log in room first.");return this.audioStream&&this.audioStream!==i&&this.zegoRTC.destroyStream(this.audioStream),this.audioStream=i,this.isDenoise&&(this.enableDenoise(this.isDenoise),this.denoiseMode!==D.PP.AIBalanced&&this.denoiseMode!=D.PP.AIAggressive||this.setAiDenoiseMode(this.denoiseMode)),null!==this.voiceChanger&&this.setVoiceChangerPreset({voiceChanger:this.voiceChanger}),null!==this.voiceParam&&this.setVoiceChangerPreset({voiceParam:this.voiceParam}),this.streamID=this.userID+"_"+Date.now(),this.zegoRTC.startPublishingStream(this.streamID,i,{extraInfo:JSON.stringify(this.getExtraInfo())}),[2]})})}).catch(function(i){throw t.audioStream=null,t.enableMic=!1,i}))},t.prototype.stopPublishingStream=function(){this.isPublishing&&this.streamID&&this.zegoRTC.stopPublishingStream(this.streamID),this.isPublishing=!1,this.audioStream&&(this.zegoRTC.destroyStream(this.audioStream),this.audioStream=null),this.enableMic=!1},t.prototype.setCustomMode=function(t,i){var n=!1,e=!1,r=!1;return i!==this.recvMode&&(this.recvMode=i,r=!0),t!==this.sendMode&&(this.sendMode=t,n=!0,e=!0),n&&this.updateSteamExtraInfo(),{sendChange:e,recvChange:r}},t.prototype.setNormalMode=function(t){this.raMode=t,this.updateSteamExtraInfo()},t.prototype.setTeamID=function(t){this.teamID=t,this.updateSteamExtraInfo()},t.prototype.updateSteamExtraInfo=function(){var t=this;this.streamID&&this.isPublishing&&(this.isUpdated=!1,this.an.info(y+" update stream info"),this.zegoRTC.setStreamExtraInfo(this.streamID,JSON.stringify(this.getExtraInfo())).then(function(i){0===i.errorCode&&(t.an.info(y+" update stream info success"),t.isUpdated=!0)}))},t.prototype.getExtraInfo=function(){var t,i={range_audio_team_id:this.teamID||"",range_audio_mode:(t=this.raMode,{0:1,1:2,2:3}[t]),r_a_s_flag:1};return void 0===this._sendMode&&this.raMode!==e.kf.World||(i.r_a_speak=this.sendMode),i},t.prototype.reset=function(){this.audioStream&&this.stopPublishingStream(),this.userID=void 0,this.streamID=null},t.prototype.enableDenoise=function(t){var i=this;return this.audioStream&&this.zegoRTC._enableAiDenoise(this.audioStream,t).catch(function(t){i.isDenoise=!1;var n=t||{};i.eventHandler.emit("aiDenoiseError",n.errorCode,n.extendedData)}),this.isDenoise=t,!0},t.prototype.setAiDenoiseMode=function(t){var i=this;return this.audioStream&&this.zegoRTC.setAiDenoiseMode(this.audioStream,t).catch(function(t){i.denoiseMode=D.PP.AI;var n=t||{};i.eventHandler.emit("aiDenoiseError",n.errorCode,n.extendedData)}),this.denoiseMode=t,!0},t.prototype.setVoiceChangerPreset=function(t){var i=this;return this.audioStream&&this.zegoRTC.setVoiceChangerPreset(this.audioStream,t).catch(function(t){i.voiceChanger=null;var n=t||{};i.eventHandler.emit("voiceChangerError",n.errorCode,n.extendedData)}),"voiceChanger"in t&&void 0!==t.voiceChanger?(this.voiceChanger=t.voiceChanger,this.voiceParam=null):"voiceParam"in t&&void 0!==t.voiceParam&&(this.voiceParam=t.voiceParam,this.voiceChanger=null),!0},t}(),B=function(t,i,n){if(n||2===arguments.length)for(var e,r=0,s=i.length;r<s;r++)!e&&r in i||(e||(e=Array.prototype.slice.call(i,0,r)),e[r]=i[r]);return t.concat(e||Array.prototype.slice.call(i))},L="zc.ra.2",U=function(){function t(t,i){this.an=t,this.isEnable=!1,this.interval=100,this.timer=null,this.audioSourceList=[],this.hasChanged=!1,this.userChanged=!1,this.updateUserInterval=1e3,this.updateUserTimer=null,this.audioSourceUpdate=!1,this._maxPlayingQuantity=20,this.allAudioSourceList=[],this.audioSourceWithinRangeList=[],this.localUserList=[],this.hn=i}return t.getInstance=function(i,n){return t.instance||(t.instance=new t(i,n)),t.instance},t.prototype.setAudioSourceUpdate=function(t){this.audioSourceUpdate=t},t.prototype.setListener=function(t){this.hn=t,this.hasChanged=!0,this.userChanged=!0},t.prototype.setAudioSourceList=function(t){this.audioSourceList=t,this.an.info("".concat(L," set src list: [").concat(t.map(function(t){return t.userID}).join(","),"]")),this.hasChanged=!0},t.prototype.setAllAudioSourceList=function(t){t&&(this.allAudioSourceList=t),this.userChanged=!0},t.prototype.startPlayingAudioStream=function(){this.timer&&(clearTimeout(this.timer),this.timer=null),this.hasChanged=!0,this.playAudioTask()},t.prototype.playAudioTask=function(){var t=this;this.hasChanged&&(this.hasChanged=!1,this.handlePlayAudioTask()),this.timer=window.setTimeout(function(){t.playAudioTask()},this.interval)},t.prototype.handlePlayAudioTask=function(){var t=this;if(this.isEnable){this.an.info("".concat(L," handler task start"));var i=B([],this.audioSourceList,!0),n=0,r=this.hn.recvMode;if([e.ju.Team,e.ju.All].includes(r)){var s=this.getTeamAudioSourceGroup();i=s.otherList,s.teamList.forEach(function(i){n<t._maxPlayingQuantity&&(i.isPlaying||i.startPlayingAudio("play for team"),n++)})}var o=[e.ju.World,e.ju.All].includes(r);o&&(i.forEach(function(i){i.distance=i.getDistanceFromListener(t.hn)}),i.sort(function(t,i){return null===t.distance?1:null===i.distance||t.distance<i.distance?-1:t.distance>i.distance?1:0})),i.forEach(function(i){var r=[e.UF.All,e.UF.World].includes(i.sendMode)&&null!==i.distance&&(null===t.hn.recvRange||i.distance<=t.hn.recvRange);if(o&&n<t._maxPlayingQuantity&&r)i.isPlaying||i.startPlayingAudio("play for range"),n++;else{var s="stop for mode or range. mode: ".concat(i.sendMode,", range: ").concat(i.distance," > ").concat(t.hn.recvRange);i.stopPlayingAudio(s)}}),this.an.info(L+" playing quantity: ".concat(n,"."))}else this.stopPlayingAudioStream()},t.prototype.startCheckUserInRange=function(){this.an.info(L+" start user check"),this.updateUserTimer&&(clearTimeout(this.updateUserTimer),this.updateUserTimer=null),this.userChanged=!0,this.userCheckTask()},t.prototype.stopCheckUserInRange=function(){this.an.info(L+" stop user check"),this.updateUserTimer&&(clearTimeout(this.updateUserTimer),this.updateUserTimer=null)},t.prototype.userCheckTask=function(){var t=this;this.userChanged&&(this.userChanged=!1,this.handleUserCheckTask()),this.updateUserTimer=window.setTimeout(function(){t.userCheckTask()},this.updateUserInterval)},t.prototype.handleUserCheckTask=function(){var t=this;if(this.audioSourceUpdate){var i=[];this.allAudioSourceList.forEach(function(n){n.distance=n.getDistanceFromListener(t.hn);var e=null!==n.distance&&(null===t.hn.recvRange||n.distance<=t.hn.recvRange),r=!!t.localUserList.find(function(t){return t.userID===n.userID});e&&r&&i.push({userID:n.userID,position:n.position})}),this.checkAudioSourceListDiff(i,this.audioSourceWithinRangeList)&&this.hn.eventHandler.emit("audioSourceWithinRangeUpdate",i),this.audioSourceWithinRangeList=i}},t.prototype.getTeamAudioSourceGroup=function(){var t=this,i=[],n=[];return this.audioSourceList.forEach(function(e){e.isSpeakInTeam(t.hn.teamID)?i.push(e):n.push(e)}),{teamList:i,otherList:n}},t.prototype.stopPlayingAudioStream=function(){this.timer&&(clearTimeout(this.timer),this.timer=null);this.audioSourceList.forEach(function(t){t.stopPlayingAudio("stop for all stream")})},t.prototype.setLocalUserList=function(t){this.localUserList=t,this.userChanged=!0},t.prototype.checkAudioSourceListDiff=function(t,i){for(var n,e=0;e<t.length;e++){n=!1;for(var r=0;r<i.length;r++)if(t[e].userID===i[r].userID){n=!0;break}if(!n)return!0}for(var s=0;s<i.length;s++){n=!1;for(var o=0;o<t.length;o++)if(i[s].userID===t[o].userID){n=!0;break}if(!n)return!0}return!1},t}();function G(t){return!isNaN(Number(t))&&""!==t&&Number.MAX_SAFE_INTEGER>=Number(t)&&Number(t)>=-Number.MAX_SAFE_INTEGER}function F(t){if(Array.isArray(t)){for(var i=0;i<3;i++){if(!G(t[i]))return!1}return!0}return!1}!function(t){t[t.Normal=0]="Normal",t[t.Custom=1]="Custom"}(j||(j={}));var J=function(){return J=Object.assign||function(t){for(var i,n=1,e=arguments.length;n<e;n++)for(var r in i=arguments[n])Object.prototype.hasOwnProperty.call(i,r)&&(t[r]=i[r]);return t},J.apply(this,arguments)},H=function(t,i,n,e){return new(n||(n=Promise))(function(r,s){function o(t){try{a(e.next(t))}catch(t){s(t)}}function u(t){try{a(e.throw(t))}catch(t){s(t)}}function a(t){var i;t.done?r(t.value):(i=t.value,i instanceof n?i:new n(function(t){t(i)})).then(o,u)}a((e=e.apply(t,i||[])).next())})},V=function(t,i){var n,e,r,s,o={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return s={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function u(u){return function(a){return function(u){if(n)throw new TypeError("Generator is already executing.");for(;s&&(s=0,u[0]&&(o=0)),o;)try{if(n=1,e&&(r=2&u[0]?e.return:u[0]?e.throw||((r=e.return)&&r.call(e),0):e.next)&&!(r=r.call(e,u[1])).done)return r;switch(e=0,r&&(u=[2&u[0],r.value]),u[0]){case 0:case 1:r=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,e=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(r=o.trys,(r=r.length>0&&r[r.length-1])||6!==u[0]&&2!==u[0])){o=0;continue}if(3===u[0]&&(!r||u[1]>r[0]&&u[1]<r[3])){o.label=u[1];break}if(6===u[0]&&o.label<r[1]){o.label=r[1],r=u;break}if(r&&o.label<r[2]){o.label=r[2],o.ops.push(u);break}r[2]&&o.ops.pop(),o.trys.pop();continue}u=i.call(t,o)}catch(t){u=[6,t],e=0}finally{n=r=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,a])}}},Q=function(t,i,n){if(n||2===arguments.length)for(var e,r=0,s=i.length;r<s;r++)!e&&r in i||(e||(e=Array.prototype.slice.call(i,0,r)),e[r]=i[r]);return t.concat(e||Array.prototype.slice.call(i))};function Y(){var t;return H(this,void 0,void 0,function(){var i,n,e;return V(this,function(r){switch(r.label){case 0:return(i=null===navigator||void 0===navigator?void 0:navigator.userAgentData)?[4,i.getHighEntropyValues(["platformVersion"]).catch(function(){})]:[2,{platform:"",majorPlatformVersion:0}];case 1:return n=r.sent()||{},e=parseInt(null===(t=n.platformVersion)||void 0===t?void 0:t.split(".")[0]),[2,{platform:n.platform,majorPlatformVersion:e}]}})})}var K="zc.ra.0";var Z=function(){function t(t,i){var n=this;this.an=i,this.isSpatial=!1,this.audioSourceList=[],this.audioSourceUpdate=!1,this.localUserList=[],this.speakingUserIdList=[],this.vocalSourceMap=new Map,this.volume=1,this.speaker="",this.ln=null,this.supportSpeakerSet=!1,this.isHide=!1,this.eventHandler={visibilitychange:function(){return H(n,void 0,void 0,function(){var t,i,n,e,s,o=this;return V(this,function(u){switch(u.label){case 0:return Q(Q([],this.vocalSourceList,!0),this.audioSourceList,!0).forEach(function(t){t.inBackground(r.VJ.hidden),o.isHide=r.VJ.hidden}),t=function(){Q(Q([],o.vocalSourceList,!0),o.audioSourceList,!0).forEach(function(t){t.changeRenderConfig(o.isOpen3D(t),!0,!1,!1)})},r.VJ.hidden?(i=(0,f.H8)()&&(0,f.Fr)(),[4,Y()]):[3,2];case 1:return n=u.sent(),e="Windows"===n.platform&&n.majorPlatformVersion>=13,i||e?(this.an.warn("".concat(K," mobile chrome hide page and stop web audio.")),t(),[2]):("running"!==(s=this.audioCtx.state)?(this.an.info("".concat(K," hidden ctx: ").concat(s,", resume ctx")),this.audioCtx.resume(),setTimeout(function(){var i=o.audioCtx.state;o.isHide&&("running"===i?o.an.info("".concat(K," hidden ctx: ").concat(i,".")):(o.an.warn("".concat(K," hidden ctx: ").concat(i,", ctx resume failed. stop web audio.")),t()))},2e3)):this.an.info("".concat(K," hidden ctx: ").concat(s,".")),[3,3]);case 2:this.audioCtx.resume(),this.audioSourceList.forEach(function(t){var i,n;t.isPlaying&&(null===(i=t.audioEl)||void 0===i||i.dom.pause(),null===(n=t.audioEl)||void 0===n||n.dom.play().catch(function(){o.an.warn("".concat(K," show page and ").concat(t.userID," replay failed."))}))}),u.label=3;case 3:return[2]}})})}},this.zegoRTC=t,r.VJ.addEventListener("visibilitychange",this.eventHandler.visibilitychange,!1),this.zegoRTC.on("roomStreamUpdate",function(t,i,e){var r=e.map(function(t){var i=n.getStreamInfo(t.extraInfo,t.streamID),e=i.isRangeAudioStream,r=i.teamID,s=i.raMode,o=i.sendMode;return J(J({},t),{isRangeAudioStream:e,teamID:r,raMode:s,sendMode:o})}).filter(function(t){return t.isRangeAudioStream}),s=r.map(function(t){return t.user.userID});"DELETE"===i?n.speakingUserIdList=n.speakingUserIdList.filter(function(t){var i=!s.includes(t);if(!i){var e=n.audioSourceMap[t];if(e){e.stopPlayingAudio("stop for stream delete")}}return i}):"ADD"===i&&(n.speakingUserIdList=n.speakingUserIdList.concat(s),r.forEach(function(t){var i=t.user.userID,e=n.audioSourceMap[i],r=t.teamID,s=t.raMode,o=t.sendMode;if(e)e.streamID!==t.streamID&&(e.stopPlayingAudio("stop for old stream"),e.streamID=t.streamID),void 0!==s&&(e.raMode=s),r!==e.teamID&&(e.teamID=r),e.changeRenderConfig(n.isOpen3D(e));else{var u=new w(n.an,{userID:i,teamID:r,raMode:s,sendMode:o},{audioCtx:n.audioCtx,zegoRTC:n.zegoRTC,isSpatial:n.isSpatial,maxDistance:n.hn.recvRange,volume:n.volume,speaker:n.speaker,isHide:n.isHide});u.streamID=t.streamID,n.audioSourceList.push(u),n.playStreamHandler.hasChanged=!0}})),n.playStreamHandler.setAudioSourceList(n.speakingAudioSourceList)}),this.zegoRTC.on("playerStateUpdate",function(t){var i=n.audioSourceList.find(function(i){return i.streamID===t.streamID});i&&("NO_PLAY"===t.state?i.isPlaying=!1:("PLAYING"===t.state&&i.checkTrackChanged(),i.isPlaying=!0))}),this.zegoRTC.on("streamExtraInfoUpdate",function(t,i){n.an.info(K+" recv extra info: "+JSON.stringify(i));var e=!1;i.forEach(function(t){var i=n.audioSourceMap[t.user.userID];if(i&&i.streamID){var r=n.getStreamInfo(t.extraInfo,t.streamID),s=r.teamID,o=r.raMode,u=r.sendMode;s!==i.teamID&&(i.teamID=s,e=!0),void 0!==o&&(i.raMode=o,e=!0),i.sendMode!==u&&(i.sendMode=u,e=!0),n.playStreamHandler.hasChanged=!0}}),e&&n.enableSpatializer(n.isSpatial)}),this.zegoRTC.RTM._on("_roomStateUpdate",function(t,i){"CONNECTED"===i?(n.roomID=t,n.hn.userID=n.zegoRTC.RTM.getUserID(),n.playStreamHandler.hasChanged=!0,n.playStreamHandler.userChanged=!0):"DISCONNECTED"===i&&(n.roomID=void 0,n.hn.reset(),n.enableSpeaker(!1),n.audioSourceList=[],n.playStreamHandler.setAudioSourceList([]),n.localUserList=[],n.playStreamHandle