@bddh/starling-realtime-client
Version:
2 lines (1 loc) • 4.57 kB
JavaScript
;var e="starling-cutout-canvas",t="cloud-brtc-player-wrapper",n="remotevideo500",i="canvas-item",o="starling-last-frame-cover-canvas",r="data-dh-last-frame-cover";exports.DEFAULT_CANVAS_ID=e,exports.HUMAN_WRAPPER_ID=t,exports.LAST_FRAME_COVER_CANVAS_CLASS=i,exports.LAST_FRAME_COVER_INNER_CANVAS_ID=o,exports.RTC_VIDEO_ID=n,exports.appendLastFrameCoverSibling=function(e){if(e&&!e.querySelector("[".concat(r,'="1"]'))){var t=document.createElement("div");t.className="".concat(i," "),t.setAttribute(r,"1");var n=document.createElement("canvas");n.id=o,Object.assign(n.style,{position:"absolute",top:"0",left:"0",width:"100%",height:"100%",objectFit:"cover",display:"block",zIndex:"0"}),t.appendChild(n),e.appendChild(t)}},exports.appendRtcDomStyle=function(){var e=document.createElement("style");e.appendChild(document.createTextNode('\n [id^="videoremote1-"] {\n display: none !important;\n }\n \n video#remotevideo500 {\n width: auto !important;\n height: auto !important;\n max-width: 100% !important;\n max-height: 100% !important;\n width: 100% !important;\n height: 100% !important;\n object-fit: cover;\n }\n\n .cloud-brtc-player-wrapper {\n width: inherit !important;\n background-size: cover;\n height: inherit;\n display: flex;\n justify-content: center;\n }\n\n #starling-cutout-canvas {\n object-fit: cover;\n }\n\n [data-dh-last-frame-cover="1"] {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n z-index: 1;\n visibility: hidden;\n }\n\n [data-dh-last-frame-cover="1"] canvas {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n }\n ')),document.head.appendChild(e)},exports.captureLastFrameToCover=function(){var t=document.getElementById(o);if(!t)return!1;var i=t.getContext("2d");if(!i)return!1;var r=document.getElementById(e),a=document.getElementById(n);return r&&r.width>0&&r.height>0?(t.width=r.width,t.height=r.height,i.drawImage(r,0,0),!0):!!(a&&a.videoWidth>0&&a.videoHeight>0)&&(t.width=a.videoWidth,t.height=a.videoHeight,i.drawImage(a,0,0,a.videoWidth,a.videoHeight),!0)},exports.checkIsHuawei=function(){var e=navigator.userAgent||navigator.vendor;return/huawei/i.test(e)||/honor/i.test(e)},exports.createHumanDom=function(i){var o=i.autoChromaKey,r=void 0!==o&&o,a=i.autoplay,d=void 0===a||a;if(document.getElementById(n))return console.error('DOM with id "'.concat(n,'" already exists.')),null;var s=document.createElement("div");s.className=t,s.id=t,s.style.position="relative";var l=document.createElement("video");if(l.id=n,l.width=0,l.height=0,l.setAttribute("width","100%"),l.setAttribute("height","100%"),l.setAttribute("data-playing","true"),l.setAttribute("playsinline",""),d&&l.setAttribute("autoplay",""),s.appendChild(l),r){var c=document.createElement("canvas");c.id=e,Object.assign(c.style,{position:"absolute",top:"0",left:"0",height:"100%",width:"100%",zIndex:"1",display:r?"block":"none"}),l.style.visibility="hidden",s.appendChild(c)}return{playerWrapper:s,video:l}},exports.ensureCutoutDomMounted=function(){if(document.getElementById(e))return!0;var i=document.getElementById(t),o=document.getElementById(n);if(!i||!o)return!1;var r=document.createElement("canvas");return r.id=e,Object.assign(r.style,{position:"absolute",top:"0",left:"0",height:"100%",width:"100%",zIndex:"1",display:"block"}),o.style.visibility="hidden",i.appendChild(r),!0},exports.muteHumanVideo=function(e){var t=document.getElementById(n);return t&&(t.muted=e),t},exports.playHumanVideo=function(e){var t=document.getElementById(n);try{if(t)return e?t.play():t.pause()}catch(e){console.info(e)}},exports.removeHumanDom=function(){var e=document.getElementById(t);e&&e.parentNode&&e.parentNode.removeChild(e)},exports.removeLastFrameCoverWrapper=function(){var e=document.querySelector("[".concat(r,'="1"]'));null!=e&&e.parentNode&&e.parentNode.removeChild(e)},exports.setHumanPlayerWrapperVisible=function(e){var n=document.getElementById(t);n&&(n.style.visibility=e?"visible":"hidden",n.style.pointerEvents=e?"":"none")},exports.setLastFrameCoverVisible=function(e){var t=document.getElementById(o),n=null==t?void 0:t.parentNode;n&&(n.style.visibility=e?"visible":"hidden")};