trtc-sdk-v5
Version:
Tencent Cloud RTC SDK for Web
2 lines (1 loc) • 5.12 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).VideoMixer=t()}(this,(function(){"use strict";function e(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,o=Array(t);r<t;r++)o[r]=e[r];return o}function t(e,t,r){return t&&function(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,o(n.key),n)}}(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function r(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=function(t,r){if(t){if("string"==typeof t)return e(t,r);var o={}.toString.call(t).slice(8,-1);return"Object"===o&&t.constructor&&(o=t.constructor.name),"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?e(t,r):void 0}}(t))||r){o&&(t=o);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,a=!0,c=!1;return{s:function(){o=o.call(t)},n:function(){var e=o.next();return a=e.done,e},e:function(e){c=!0,u=e},f:function(){try{a||null==o.return||o.return()}finally{if(c)throw u}}}}function o(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,t);if("object"!=typeof o)return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e,"string");return"symbol"==typeof t?t:t+""}function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}var i=Object.defineProperty,u=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable,s=function(e,t,r){return t in e?i(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r},p=function(e,t){for(var o in t||(t={}))a.call(t,o)&&s(e,o,t[o]);if(u){var n,i=r(u(t));try{for(i.s();!(n=i.n()).done;){o=n.value;c.call(t,o)&&s(e,o,t[o])}}catch(e){i.e(e)}finally{i.f()}}return e},l=function(e,t,r){return s(e,"symbol"!==n(t)?t+"":t,r)},f={x:{required:!1,type:"number"},y:{required:!1,type:"number"},width:{required:!1,type:"number",notLessThanZero:!0,min:1},height:{required:!1,type:"number",notLessThanZero:!0,min:1}};var y=0,d=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.core=t,l(this,"seq"),l(this,"log"),y+=1,this.seq=y,this.log=t.log.createChild({id:"".concat(this.getAlias()).concat(y)}),this.log.info("created")}return t(e,[{key:"getName",value:function(){return e.Name}},{key:"getAlias",value:function(){return"vmix"}},{key:"getValidateRule",value:function(e){switch(e){case"start":return this.core,{name:"VideoMixerOptions",type:"object",required:!1,allowEmpty:!1,properties:{container:{type:"object",required:!0,properties:{width:{required:!0,type:"number",notLessThanZero:!0,min:1},height:{required:!0,type:"number",notLessThanZero:!0,min:1}}},camera:{type:"object",required:!1,properties:p({},f)},screen:{type:"object",required:!1,properties:p({},f)}}};case"update":return this.core,{name:"VideoMixerOptions",type:"object",required:!1,allowEmpty:!1,properties:{container:{type:"object",required:!1,properties:{width:{required:!0,type:"number",notLessThanZero:!0,min:1},height:{required:!0,type:"number",notLessThanZero:!0,min:1}}},camera:{type:"object",required:!1,properties:p({},f)},screen:{type:"object",required:!1,properties:p({},f)}}};case"stop":return this.core,{name:"StopVideoMixerOptions",required:!1}}}},{key:"getGroup",value:function(){return"vmix"}},{key:"subStream",get:function(){return this.core.trtc.getVideoTrack({streamType:this.core.TRTC.TYPE.STREAM_TYPE_SUB})}},{key:"mainStream",get:function(){return this.core.trtc.getVideoTrack()}},{key:"start",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.subStream&&(this.core.trtc.updateScreenShare({publish:!1}),this.core.trtc.updateLocalVideo({publish:!0})),this.core.trtc.on(this.core.TRTC.EVENT.PUBLISH_STATE_CHANGED,this.stopSubStream,this),this.core.room.videoManager.setVideoMixer(e)}},{key:"update",value:function(e){return this.core.room.videoManager.updateVideoMixer(e)}},{key:"stop",value:function(){return this.core.trtc.off(this.core.TRTC.EVENT.PUBLISH_STATE_CHANGED,this.stopSubStream,this),this.subStream&&this.core.trtc.updateScreenShare({publish:!0}),this.core.room.videoManager.deleteVideoMixer()}},{key:"stopSubStream",value:function(e){var t=e.mediaType,r=e.state;e.reason,"screen"===t&&"started"===r&&(this.core.trtc.updateScreenShare({publish:!1}),this.core.trtc.updateLocalVideo({publish:!0}))}}])}();return l(d,"Name","VideoMixer"),d}));