trtc-sdk-v5
Version:
Tencent Cloud RTC SDK for Web
1 lines • 3.25 kB
JavaScript
var __defProp=Object.defineProperty,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,r,t)=>r in e?__defProp(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t,__spreadValues=(e,r)=>{for(var t in r||(r={}))__hasOwnProp.call(r,t)&&__defNormalProp(e,t,r[t]);if(__getOwnPropSymbols)for(var t of __getOwnPropSymbols(r))__propIsEnum.call(r,t)&&__defNormalProp(e,t,r[t]);return e},__publicField=(e,r,t)=>__defNormalProp(e,"symbol"!=typeof r?r+"":r,t),layerProperty={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}};function startValidateRule(e){return{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:__spreadValues({},layerProperty)},screen:{type:"object",required:!1,properties:__spreadValues({},layerProperty)}}}}function updateValidateRule(e){return{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:__spreadValues({},layerProperty)},screen:{type:"object",required:!1,properties:__spreadValues({},layerProperty)}}}}function stopValidateRule(e){return{name:"StopVideoMixerOptions",required:!1}}var videoMixSeq=0,_VideoMixer=class e{constructor(e){this.core=e,__publicField(this,"seq"),__publicField(this,"log"),videoMixSeq+=1,this.seq=videoMixSeq,this.log=e.log.createChild({id:`${this.getAlias()}${videoMixSeq}`}),this.log.info("created")}getName(){return e.Name}getAlias(){return"vmix"}getValidateRule(e){switch(e){case"start":return startValidateRule(this.core);case"update":return updateValidateRule(this.core);case"stop":return stopValidateRule(this.core)}}getGroup(){return"vmix"}get subStream(){return this.core.trtc.getVideoTrack({streamType:this.core.TRTC.TYPE.STREAM_TYPE_SUB})}get mainStream(){return this.core.trtc.getVideoTrack()}start(e={}){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)}update(e){return this.core.room.videoManager.updateVideoMixer(e)}stop(){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()}stopSubStream(e){const{mediaType:r,state:t,reason:i}=e;"screen"===r&&"started"===t&&(this.core.trtc.updateScreenShare({publish:!1}),this.core.trtc.updateLocalVideo({publish:!0}))}};__publicField(_VideoMixer,"Name","VideoMixer");var VideoMixer=_VideoMixer,index_default=VideoMixer;export{index_default as default};export{VideoMixer};