trtc-sdk-v5 5.15.0-beta.14 → 5.15.0-beta.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/debug-dialog.js +2 -2
- package/index.d.ts +8 -4
- package/package.json +1 -1
- package/plugins/cdn-streaming/cdn-streaming.esm.js +1 -1
- package/plugins/cdn-streaming/cdn-streaming.umd.js +1 -1
- package/plugins/cdn-streaming/package.json +1 -1
- package/plugins/chorus/chorus.esm.d.ts +0 -2
- package/plugins/chorus/package.json +1 -1
- package/plugins/cross-room/cross-room.esm.d.ts +0 -2
- package/plugins/cross-room/package.json +1 -1
- package/plugins/custom-encryption/package.json +1 -1
- package/plugins/device-detector/package.json +1 -1
- package/plugins/fast-webrtc/fast-webrtc.esm.d.ts +27 -0
- package/plugins/fast-webrtc/fast-webrtc.esm.js +1 -0
- package/plugins/fast-webrtc/fast-webrtc.umd.js +1 -0
- package/plugins/{video-effect/face-detection → fast-webrtc}/package.json +8 -8
- package/plugins/lebplayer/lebplayer.esm.d.ts +260 -0
- package/plugins/lebplayer/lebplayer.esm.js +1 -0
- package/plugins/lebplayer/lebplayer.umd.js +1 -0
- package/plugins/lebplayer/package.json +29 -0
- package/plugins/small-stream-auto-switcher/package.json +1 -1
- package/plugins/video-decoder/package.json +1 -1
- package/plugins/video-decoder/video-decoder.esm.d.ts +1 -2
- package/plugins/video-decoder/video-decoder.esm.js +1 -1
- package/plugins/video-decoder/video-decoder.umd.js +1 -1
- package/plugins/video-effect/basic-beauty/package.json +1 -1
- package/plugins/video-effect/beauty/package.json +1 -1
- package/plugins/video-effect/video-mixer/package.json +1 -1
- package/plugins/video-effect/virtual-background/package.json +1 -1
- package/plugins/video-effect/virtual-background/virtual-background.esm.js +1 -1
- package/plugins/video-effect/virtual-background/virtual-background.umd.js +1 -1
- package/plugins/video-effect/watermark/package.json +1 -1
- package/plugins/voice-changer/package.json +1 -1
- package/trtc.esm.js +39 -35
- package/trtc.js +1 -1
- package/plugins/video-effect/face-detection/face-detection.esm.d.ts +0 -22
- package/plugins/video-effect/face-detection/face-detection.esm.js +0 -1
- package/plugins/video-effect/face-detection/face-detection.umd.js +0 -1
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export interface FaceDetectionOptions {
|
|
2
|
-
onFaceDetectionStateChanged: (hasFace: boolean) => void;
|
|
3
|
-
detectionInterval?: number;
|
|
4
|
-
minConfidence?: number;
|
|
5
|
-
missingTimeout?: number;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
export interface UpdateFaceDetectionOptions {
|
|
9
|
-
onFaceDetectionStateChanged?: (hasFace: boolean) => void;
|
|
10
|
-
detectionInterval?: number;
|
|
11
|
-
minConfidence?: number;
|
|
12
|
-
missingTimeout?: number;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export declare class FaceDetection {
|
|
16
|
-
static isSupported(): boolean;
|
|
17
|
-
start(options: FaceDetectionOptions): Promise<void>;
|
|
18
|
-
update(options: UpdateFaceDetectionOptions): Promise<void>;
|
|
19
|
-
stop(): Promise<void>;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export default FaceDetection;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var __defProp=Object.defineProperty,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,r)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,__spreadValues=(e,t)=>{for(var r in t||(t={}))__hasOwnProp.call(t,r)&&__defNormalProp(e,r,t[r]);if(__getOwnPropSymbols)for(var r of __getOwnPropSymbols(t))__propIsEnum.call(t,r)&&__defNormalProp(e,r,t[r]);return e},__publicField=(e,t,r)=>__defNormalProp(e,"symbol"!=typeof t?t+"":t,r),BASE_FACE_DETECTION_RULES={detectionInterval:{type:"number",required:!1,min:100,max:5e3},minConfidence:{type:"number",required:!1,min:0,max:1},missingTimeout:{type:"number",required:!1,min:0,max:5e3}},faceDetectionOptions=__spreadValues({onFaceDetectionStateChanged:{required:!0}},BASE_FACE_DETECTION_RULES),updateFaceDetectionOptions=__spreadValues({onFaceDetectionStateChanged:{required:!1}},BASE_FACE_DETECTION_RULES);function startValidateRule(e){return{type:"object",required:!0,properties:faceDetectionOptions,validate(t,r,i,s){var a;const{RtcError:o,ErrorCode:n,ErrorCodeDictionary:_}=e.errorModule,{onFaceDetectionStateChanged:c}=t;if(c&&!e.utils.isFunction(c))throw new o({code:n.INVALID_PARAMETER,extraCode:_.INVALID_PARAMETER_TYPE,fnName:i,messageParams:{key:"onFaceDetectionStateChanged",value:typeof c,rule:{type:"Function"}}});if(!(null==(a=e.room.videoManager.cameraTrack)?void 0:a.mediaTrack))throw new o({code:n.INVALID_OPERATION,extraCode:_.INVALID_OPERATION_NEED_VIDEO,fnName:i})}}}function updateValidateRule(e){return{type:"object",required:!0,properties:updateFaceDetectionOptions,validate(t,r,i,s){var a;const{RtcError:o,ErrorCode:n,ErrorCodeDictionary:_}=e.errorModule,{onFaceDetectionStateChanged:c}=t;if(c&&!e.utils.isFunction(c))throw new o({code:n.INVALID_PARAMETER,extraCode:_.INVALID_PARAMETER_TYPE,fnName:i,messageParams:{key:"onFaceDetectionStateChanged",value:typeof c,rule:{type:"Function"}}});if(!(null==(a=e.room.videoManager.cameraTrack)?void 0:a.mediaTrack))throw new o({code:n.INVALID_OPERATION,extraCode:_.INVALID_OPERATION_NEED_VIDEO,fnName:i})}}}function stopValidateRule(e){return{name:"StopFaceDetectionOptions",required:!1}}var USER_AGENT="undefined"==typeof navigator?"":navigator.userAgent,isUserAgentMatch=e=>new RegExp(e,"i").test(USER_AGENT),getBrowserVersion=e=>{if(isUserAgentMatch(e)){const t=new RegExp(`${e}\\/([\\d.]+)`),r=USER_AGENT.match(t);if(r&&r[1])return r[1]}return""},getBrowserMajorVersion=e=>{if(isUserAgentMatch(e)){const t=new RegExp(`${e}\\/(\\d+)`),r=USER_AGENT.match(t);if(r&&r[1])return parseFloat(r[1])}return NaN},webkitVersionMap=/AppleWebKit\/([\d.]+)/i.exec(USER_AGENT),appleWebkitVersion=webkitVersionMap?parseFloat(webkitVersionMap[1]):NaN,IS_IPAD=isUserAgentMatch("iPad"),IS_IPAD_PRO="undefined"!=typeof navigator&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&isUserAgentMatch("Macintosh"),IS_IPHONE=isUserAgentMatch("iPhone")&&!IS_IPAD,IS_IPOD=isUserAgentMatch("iPod"),IS_IOS=IS_IPHONE||IS_IPAD||IS_IPOD||IS_IPAD_PRO,IS_ANDROID=isUserAgentMatch("Android"),ANDROID_VERSION=function(){if(IS_ANDROID){const e=USER_AGENT.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(e){const t=e[1]&&parseFloat(e[1]),r=e[2]&&parseFloat(e[2]);if(t&&r)return parseFloat(`${e[1]}.${e[2]}`);if(t)return t}}return NaN}(),IS_OLD_ANDROID=IS_ANDROID&&isUserAgentMatch("webkit")&&ANDROID_VERSION<2.3,IS_NATIVE_ANDROID=IS_ANDROID&&ANDROID_VERSION<5&&appleWebkitVersion<537,IS_FIREFOX=isUserAgentMatch("Firefox"),FIREFOX_VERSION=getBrowserVersion("Firefox"),FIREFOX_MAJOR_VERSION=getBrowserMajorVersion("Firefox"),IS_EDGE=isUserAgentMatch("Edge"),EDGE_VERSION=getBrowserVersion("Edge"),IS_EDG=isUserAgentMatch("Edg"),EDG_VERSION=getBrowserVersion("Edg"),EDG_MAJOR_VERSION=getBrowserMajorVersion("Edg"),IS_SOGOUM=isUserAgentMatch("SogouMobileBrowser"),SOGOUM_VERSION=getBrowserVersion("SogouMobileBrowser"),IS_SOGOU=isUserAgentMatch("MetaSr\\s"),SOGOU_VERSION=getBrowserVersion("MetaSr\\s"),IS_TBS=isUserAgentMatch("TBS"),TBS_VERSION=getBrowserVersion("TBS"),IS_XWEB=isUserAgentMatch("XWEB"),XWEB_VERSION=getBrowserVersion("XWEB"),IS_IE8=isUserAgentMatch("MSIE\\s8\\.0"),IS_IE=isUserAgentMatch("MSIE\\/\\d+"),IE_VERSION=function(){if(IS_IE){const e=/MSIE\s(\d+)\.\d/.exec(USER_AGENT);let t=e&&parseFloat(e[1]);return!t&&/Trident\/7.0/i.test(USER_AGENT)&&/rv:11.0/.test(USER_AGENT)&&(t=11),t}return NaN}(),IS_WECHAT=isUserAgentMatch("(micromessenger|webbrowser)"),WECHAT_VERSION=getBrowserVersion("MicroMessenger"),IS_X5MQQB=!IS_TBS&&isUserAgentMatch("MQQBrowser")&&isUserAgentMatch("COVC"),IS_MQQB=!IS_TBS&&isUserAgentMatch("MQQBrowser")&&!isUserAgentMatch("COVC"),MQQB_VERSION=IS_MQQB||IS_X5MQQB?getBrowserVersion("MQQBrowser"):"",IS_WQQB=!IS_TBS&&isUserAgentMatch(" QQBrowser"),WQQB_VERSION=getBrowserVersion(" QQBrowser"),IS_MACQQB=!IS_TBS&&isUserAgentMatch("QQBrowserLite"),MACQQB_VERSION=getBrowserVersion("QQBrowserLite"),IS_IPADQQB=!IS_TBS&&isUserAgentMatch("MQBHD"),IPADQQB_VERSION=getBrowserVersion("MQBHD"),IS_WIN=isUserAgentMatch("Windows"),IS_MAC=!IS_IOS&&isUserAgentMatch("MAC OS X"),IS_LINUX=!IS_ANDROID&&isUserAgentMatch("Linux"),IS_CHROME_OS=isUserAgentMatch("CrOS"),IS_WX=isUserAgentMatch("MicroMessenger"),IS_UCBROWSER=isUserAgentMatch("UCBrowser"),IS_ELECTRON=isUserAgentMatch("Electron"),IS_MIBROWSER=isUserAgentMatch("MiuiBrowser"),MI_VERSION=getBrowserVersion("MiuiBrowser"),IS_HUAWEIBROWSER=isUserAgentMatch("HuaweiBrowser"),IS_HUAWEI=isUserAgentMatch("Huawei")||isUserAgentMatch("HUAWEI"),IS_HONOR=isUserAgentMatch("Honor")||isUserAgentMatch("HONOR"),HUAWEI_VERSION=getBrowserVersion("HuaweiBrowser"),IS_SAMSUNGBROWSER=isUserAgentMatch("SamsungBrowser"),SAMSUNG_VERSION=getBrowserVersion("SamsungBrowser"),IS_OPPOBROWSER=isUserAgentMatch("HeyTapBrowser"),OPPO_VERSION=getBrowserVersion("HeyTapBrowser"),IS_VIVOBROWSER=isUserAgentMatch("VivoBrowser"),VIVO_VERSION=getBrowserVersion("VivoBrowser"),IS_OPENHARMONY=isUserAgentMatch("OpenHarmony"),OPENHARMONY_VERSION=getBrowserVersion("OpenHarmony"),getChromeMajorVersion=()=>getBrowserMajorVersion("Chrome"),IS_IOS_CHROME=isUserAgentMatch("CriOS"),IS_CHROMIUM_BASE=isUserAgentMatch("Chrome"),IS_CHROME=!IS_EDGE&&!IS_SOGOU&&!IS_SOGOUM&&!IS_TBS&&!IS_XWEB&&!IS_EDG&&!IS_WQQB&&!IS_MIBROWSER&&!IS_HUAWEIBROWSER&&!IS_SAMSUNGBROWSER&&!IS_OPPOBROWSER&&!IS_VIVOBROWSER&&IS_CHROMIUM_BASE,IS_HEADLESS_CHROME=isUserAgentMatch("HeadlessChrome"),CHROME_MAJOR_VERSION=getChromeMajorVersion(),CHROME_VERSION=getBrowserVersion("Chrome"),ELECTRON_MAJOR_VERSION=getBrowserMajorVersion("Electron"),IS_SAFARI=!IS_CHROMIUM_BASE&&!IS_MQQB&&!IS_X5MQQB&&!IS_MACQQB&&!IS_IPADQQB&&isUserAgentMatch("Safari"),SAFARI_VERSION=getBrowserVersion("Version"),IS_ANDROID_WEBVIEW=/Android.*(wv|.0.0.0)/.test(USER_AGENT),IOS_VERSION=(()=>{if(IS_IPAD_PRO)return SAFARI_VERSION;if(IS_IOS){const e=USER_AGENT.match(/OS (\d+)_(\d+)/i);if(e&&e[1]){let t=e[1];return e[2]&&(t+=`.${e[2]}`),t}}return""})(),IOS_MAIN_VERSION=Number(IOS_VERSION.split(".")[0]),IS_IOS_13_OR_14=(()=>{const e=Number(IOS_VERSION.split(".")[0]);return 14===e||13===e})(),IS_LOCAL="undefined"!=typeof location&&("file:"===location.protocol||"localhost"===location.hostname||"127.0.0.1"===location.hostname),browserInfo=getBrowserInfo();function getBrowserInfo(){const e=new Map([[IS_FIREFOX,["Firefox",FIREFOX_VERSION]],[IS_EDG,["Edg",EDG_VERSION]],[IS_CHROME,["Chrome",CHROME_VERSION]],[IS_IOS_CHROME,["ChiOS",getBrowserVersion("CriOS")]],[IS_SAFARI&&!IS_IOS_CHROME,["Safari",SAFARI_VERSION]],[IS_TBS,["TBS",TBS_VERSION]],[IS_XWEB,["XWEB",XWEB_VERSION]],[IS_WECHAT&&IS_IPHONE,["WeChat",WECHAT_VERSION]],[IS_WQQB,["QQ(Win)",WQQB_VERSION]],[IS_MQQB,["QQ(Mobile)",MQQB_VERSION]],[IS_X5MQQB,["QQ(Mobile X5)",MQQB_VERSION]],[IS_MACQQB,["QQ(Mac)",MACQQB_VERSION]],[IS_IPADQQB,["QQ(iPad)",IPADQQB_VERSION]],[IS_MIBROWSER,["MI",MI_VERSION]],[IS_HUAWEIBROWSER,["HW",HUAWEI_VERSION]],[IS_SAMSUNGBROWSER,["Samsung",SAMSUNG_VERSION]],[IS_OPPOBROWSER,["OPPO",OPPO_VERSION]],[IS_VIVOBROWSER,["VIVO",VIVO_VERSION]],[IS_EDGE,["EDGE",EDGE_VERSION]],[IS_SOGOUM,["SogouMobile",SOGOUM_VERSION]],[IS_SOGOU,["Sogou",SOGOU_VERSION]]]);let t="unknown",r="unknown";return e.has(!0)&&([t,r]=e.get(!0)),{name:t,version:r}}var faceDetectionSeq=0,_FaceDetection=class e{constructor(e){this.core=e,__publicField(this,"seq"),__publicField(this,"log"),__publicField(this,"preLoadPromise"),__publicField(this,"_faceDetectorHash"),__publicField(this,"_visionTaskRegistry"),__publicField(this,"_faceStatus",!1),__publicField(this,"_startMissing"),__publicField(this,"_minConfidence",.8),__publicField(this,"_missingTimeout",1e3),__publicField(this,"_detectionInterval",300),__publicField(this,"_lastDetectTime",0),__publicField(this,"_videoFrameCallBackId"),__publicField(this,"_video"),__publicField(this,"_onFaceDetectionStateChanged"),faceDetectionSeq+=1,this.seq=faceDetectionSeq,this.log=e.log.createChild({id:`${this.getAlias()}${faceDetectionSeq}`}),this.log.info("created"),e.assetsPath&&(this.preLoadPromise=this.preload(e.assetsPath))}static isSupported(){if(CHROME_MAJOR_VERSION<90)return!1;const e=document.createElement("canvas").getContext("webgl2");return!!(e&&e instanceof WebGL2RenderingContext)}resetState(){this._faceStatus=!1,this._startMissing=null,this._lastDetectTime=0}async preload(e){try{await this.core.initVisionTaskRegistry(e,["FaceDetector"])}catch(e){const{RtcError:t,ErrorCode:r}=this.core.errorModule;throw new t({code:r.INVALID_OPERATION,message:`FaceDetection preload error, please redeploy the assets of the npm package. detail: ${e}`})}}getGroup(){return"fd"}getName(){return e.Name}getAlias(){return"fd"}getValidateRule(e){switch(e){case"start":return startValidateRule(this.core);case"update":return updateValidateRule(this.core);case"stop":return stopValidateRule(this.core)}}getCurrentStatus(){const e=this._visionTaskRegistry.getResult(this._faceDetectorHash).detections;this._visionTaskRegistry.resetHashResults();let t=e.length>0;if(t){const r=[];for(const t of e){const e=t.categories;for(const t of e)r.push(t.score)}t&&(t=!!r.find((e=>e>=this._minConfidence)))}return t}detectFace(){const e=this.getCurrentStatus();this._startMissing&&Date.now()-this._startMissing>=this._missingTimeout&&e!==this._faceStatus?(this._onFaceDetectionStateChanged(e),this._faceStatus=e,this._startMissing=null):Date.now()-this._lastDetectTime>=this._detectionInterval&&(this._faceStatus!==e&&(e||0===this._missingTimeout?(this._onFaceDetectionStateChanged(e),this._faceStatus=e):this._startMissing||(this._startMissing=Date.now())),this._lastDetectTime=Date.now()),this._videoFrameCallBackId=this._video.requestVideoFrameCallback(this.detectFace.bind(this))}async initFaceDetection(){this._visionTaskRegistry=await window.VisionTaskRegistry.getInstance();const e=await this._visionTaskRegistry.register(window.VisionTaskType.FaceDetector);e&&(this._faceDetectorHash=e,this._visionTaskRegistry.setVideo(this._faceDetectorHash,this._video))}updateOptions(e){e.onFaceDetectionStateChanged&&(this._onFaceDetectionStateChanged=e.onFaceDetectionStateChanged),e.detectionInterval&&(this._detectionInterval=e.detectionInterval),e.minConfidence&&(this._minConfidence=e.minConfidence),(0===e.missingTimeout||e.missingTimeout)&&(this._missingTimeout=e.missingTimeout)}async start(e){const{RtcError:t,ErrorCode:r}=this.core.errorModule;if(this.updateOptions(e),!this.preLoadPromise){if(!this.core.assetsPath)throw new t({code:r.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});this.preLoadPromise=this.preload(this.core.assetsPath)}await this.preLoadPromise;const i=this.core.room.videoManager.cameraTrack,s=null==i?void 0:i.player.element;if(!s||!s.srcObject)throw new t({code:r.DEVICE_ERROR,message:"please enable camera display to start detection"});this._video=s,this.core.utils.isMediaStreamTrack(this._video.srcObject.getVideoTracks()[0])||(this._video.srcObject=new MediaStream([i.mediaTrack])),await this.initFaceDetection().catch((e=>{throw new t({code:r.UNKNOWN_ERROR,message:e.message})})),this._videoFrameCallBackId=this._video.requestVideoFrameCallback(this.detectFace.bind(this)),i.on(this.core.enums.TrackEvent.MUTE,this.autoHandleMute,this),this.core.kvStatManager.addEnum({key:575700,value:1})}autoHandleMute(){const e=this.core.room.videoManager.cameraTrack;this._faceStatus&&(this._faceStatus=!1,this._onFaceDetectionStateChanged(!1)),this._video.cancelVideoFrameCallback(this._videoFrameCallBackId),null==e||e.once(this.core.enums.TrackEvent.UNMUTE,(()=>{this._videoFrameCallBackId=this._video.requestVideoFrameCallback(this.detectFace.bind(this))}))}async update(e){this.updateOptions(e),this.core.kvStatManager.addEnum({key:575701,value:1})}async stop(){var e;this.resetState(),this._video.cancelVideoFrameCallback(this._videoFrameCallBackId),null==(e=this.core.room.videoManager.cameraTrack)||e.off(this.core.enums.TrackEvent.MUTE,this.autoHandleMute,this),this.core.kvStatManager.addEnum({key:575702,value:1})}destroy(){this.stop()}};__publicField(_FaceDetection,"Name","FaceDetection");var FaceDetection=_FaceDetection,index_default=FaceDetection;export{index_default as default};export{FaceDetection};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
!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).FaceDetection=t()}(this,(function(){"use strict";function e(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function t(e,t,r,n,o,i,a){try{var s=e[i](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,o)}function r(e){return function(){var r=this,n=arguments;return new Promise((function(o,i){var a=e.apply(r,n);function s(e){t(a,o,i,s,c,"next",e)}function c(e){t(a,o,i,s,c,"throw",e)}s(void 0)}))}}function n(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,s(n.key),n)}}function o(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=u(e))||t){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}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 i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function i(){i=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},a="function"==typeof Symbol?Symbol:{},s=a.iterator||"@@iterator",c=a.asyncIterator||"@@asyncIterator",u=a.toStringTag||"@@toStringTag";function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,r){return e[t]=r}}function h(e,t,r,n){var i=t&&t.prototype instanceof g?t:g,a=Object.create(i.prototype),s=new F(n||[]);return o(a,"_invoke",{value:C(e,r,s)}),a}function f(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=h;var d="suspendedStart",v="suspendedYield",p="executing",y="completed",m={};function g(){}function w(){}function b(){}var E={};l(E,s,(function(){return this}));var _=Object.getPrototypeOf,k=_&&_(_(D([])));k&&k!==r&&n.call(k,s)&&(E=k);var S=b.prototype=g.prototype=Object.create(E);function T(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function x(e,t){function r(o,i,a,s){var c=f(e[o],e,i);if("throw"!==c.type){var u=c.arg,l=u.value;return l&&"object"==typeof l&&n.call(l,"__await")?t.resolve(l.__await).then((function(e){r("next",e,a,s)}),(function(e){r("throw",e,a,s)})):t.resolve(l).then((function(e){u.value=e,a(u)}),(function(e){return r("throw",e,a,s)}))}s(c.arg)}var i;o(this,"_invoke",{value:function(e,n){function o(){return new t((function(t,o){r(e,n,t,o)}))}return i=i?i.then(o,o):o()}})}function C(t,r,n){var o=d;return function(i,a){if(o===p)throw Error("Generator is already running");if(o===y){if("throw"===i)throw a;return{value:e,done:!0}}for(n.method=i,n.arg=a;;){var s=n.delegate;if(s){var c=O(s,n);if(c){if(c===m)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===d)throw o=y,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=p;var u=f(t,r,n);if("normal"===u.type){if(o=n.done?y:v,u.arg===m)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(o=y,n.method="throw",n.arg=u.arg)}}}function O(t,r){var n=r.method,o=t.iterator[n];if(o===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,O(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),m;var i=f(o,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,m;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,m):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,m)}function M(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function I(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function F(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(M,this),this.reset(!0)}function D(t){if(t||""===t){var r=t[s];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function r(){for(;++o<t.length;)if(n.call(t,o))return r.value=t[o],r.done=!1,r;return r.value=e,r.done=!0,r};return i.next=i}}throw new TypeError(typeof t+" is not iterable")}return w.prototype=b,o(S,"constructor",{value:b,configurable:!0}),o(b,"constructor",{value:w,configurable:!0}),w.displayName=l(b,u,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===w||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,l(e,u,"GeneratorFunction")),e.prototype=Object.create(S),e},t.awrap=function(e){return{__await:e}},T(x.prototype),l(x.prototype,c,(function(){return this})),t.AsyncIterator=x,t.async=function(e,r,n,o,i){void 0===i&&(i=Promise);var a=new x(h(e,r,n,o),i);return t.isGeneratorFunction(r)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},T(S),l(S,u,"Generator"),l(S,s,(function(){return this})),l(S,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=D,F.prototype={constructor:F,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(I),!t)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var r=this;function o(n,o){return s.type="throw",s.arg=t,r.next=n,o&&(r.method="next",r.arg=e),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var c=n.call(a,"catchLoc"),u=n.call(a,"finallyLoc");if(c&&u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(c){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,m):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),m},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),I(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;I(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:D(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),m}},t}function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,s=[],c=!0,u=!1;try{if(i=(r=r.call(e)).next,0===t);else for(;!(c=(n=i.call(r)).done)&&(s.push(n.value),s.length!==t);c=!0);}catch(e){u=!0,o=e}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(u)throw o}}return s}}(e,t)||u(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t);if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e,"string");return"symbol"==typeof t?t:t+""}function c(e){return c="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},c(e)}function u(t,r){if(t){if("string"==typeof t)return e(t,r);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?e(t,r):void 0}}var l=Object.defineProperty,h=Object.getOwnPropertySymbols,f=Object.prototype.hasOwnProperty,d=Object.prototype.propertyIsEnumerable,v=function(e,t,r){return t in e?l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r},p=function(e,t){for(var r in t||(t={}))f.call(t,r)&&v(e,r,t[r]);if(h){var n,i=o(h(t));try{for(i.s();!(n=i.n()).done;){r=n.value;d.call(t,r)&&v(e,r,t[r])}}catch(e){i.e(e)}finally{i.f()}}return e},y=function(e,t,r){return v(e,"symbol"!==c(t)?t+"":t,r)},m={detectionInterval:{type:"number",required:!1,min:100,max:5e3},minConfidence:{type:"number",required:!1,min:0,max:1},missingTimeout:{type:"number",required:!1,min:0,max:5e3}},g=p({onFaceDetectionStateChanged:{required:!0}},m),w=p({onFaceDetectionStateChanged:{required:!1}},m);var b="undefined"==typeof navigator?"":navigator.userAgent,E=function(e){return new RegExp(e,"i").test(b)},_=function(e){if(E(e)){var t=new RegExp("".concat(e,"\\/([\\d.]+)")),r=b.match(t);if(r&&r[1])return r[1]}return""},k=function(e){if(E(e)){var t=new RegExp("".concat(e,"\\/(\\d+)")),r=b.match(t);if(r&&r[1])return parseFloat(r[1])}return NaN},S=/AppleWebKit\/([\d.]+)/i.exec(b);S&&parseFloat(S[1]);var T=E("iPad"),x="undefined"!=typeof navigator&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&E("Macintosh"),C=E("iPhone")&&!T,O=E("iPod"),M=C||T||O||x,I=E("Android");!function(){if(I){var e=b.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(e){var t=e[1]&&parseFloat(e[1]),r=e[2]&&parseFloat(e[2]);if(t&&r)return parseFloat("".concat(e[1],".").concat(e[2]));if(t)return t}}}();I&&E("webkit");var F=E("Firefox"),D=_("Firefox");k("Firefox");var P=E("Edge"),L=_("Edge"),A=E("Edg"),R=_("Edg");k("Edg");var N=E("SogouMobileBrowser"),B=_("SogouMobileBrowser"),j=E("MetaSr\\s"),V=_("MetaSr\\s"),Q=E("TBS"),H=_("TBS"),q=E("XWEB"),G=_("XWEB");E("MSIE\\s8\\.0");var W=E("MSIE\\/\\d+");!function(){if(W){var e=/MSIE\s(\d+)\.\d/.exec(b),t=e&&parseFloat(e[1]);return!t&&/Trident\/7.0/i.test(b)&&/rv:11.0/.test(b)&&(t=11),t}}();var U=E("(micromessenger|webbrowser)"),X=_("MicroMessenger"),Y=!Q&&E("MQQBrowser")&&E("COVC"),K=!Q&&E("MQQBrowser")&&!E("COVC"),$=K||Y?_("MQQBrowser"):"",z=!Q&&E(" QQBrowser"),J=_(" QQBrowser"),Z=!Q&&E("QQBrowserLite"),ee=_("QQBrowserLite"),te=!Q&&E("MQBHD"),re=_("MQBHD");E("Windows"),!M&&E("MAC OS X"),!I&&E("Linux"),E("CrOS"),E("MicroMessenger"),E("UCBrowser"),E("Electron");var ne=E("MiuiBrowser"),oe=_("MiuiBrowser"),ie=E("HuaweiBrowser");E("Huawei")||E("HUAWEI"),E("Honor")||E("HONOR");var ae=_("HuaweiBrowser"),se=E("SamsungBrowser"),ce=_("SamsungBrowser"),ue=E("HeyTapBrowser"),le=_("HeyTapBrowser"),he=E("VivoBrowser"),fe=_("VivoBrowser");E("OpenHarmony"),_("OpenHarmony");var de=E("CriOS"),ve=E("Chrome"),pe=!P&&!j&&!N&&!Q&&!q&&!A&&!z&&!ne&&!ie&&!se&&!ue&&!he&&ve;E("HeadlessChrome");var ye=k("Chrome"),me=_("Chrome");k("Electron");var ge=!ve&&!K&&!Y&&!Z&&!te&&E("Safari"),we=_("Version"),be=function(){if(x)return we;if(M){var e=b.match(/OS (\d+)_(\d+)/i);if(e&&e[1]){var t=e[1];return e[2]&&(t+=".".concat(e[2])),t}}return""}();Number(be.split(".")[0]),Number(be.split(".")[0]),function(){var e=new Map([[F,["Firefox",D]],[A,["Edg",R]],[pe,["Chrome",me]],[de,["ChiOS",_("CriOS")]],[ge&&!de,["Safari",we]],[Q,["TBS",H]],[q,["XWEB",G]],[U&&C,["WeChat",X]],[z,["QQ(Win)",J]],[K,["QQ(Mobile)",$]],[Y,["QQ(Mobile X5)",$]],[Z,["QQ(Mac)",ee]],[te,["QQ(iPad)",re]],[ne,["MI",oe]],[ie,["HW",ae]],[se,["Samsung",ce]],[ue,["OPPO",le]],[he,["VIVO",fe]],[P,["EDGE",L]],[N,["SogouMobile",B]],[j,["Sogou",V]]]),t="unknown",r="unknown";if(e.has(!0)){var n=a(e.get(!0),2);t=n[0],r=n[1]}}();var Ee=0,_e=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,y(this,"seq"),y(this,"log"),y(this,"preLoadPromise"),y(this,"_faceDetectorHash"),y(this,"_visionTaskRegistry"),y(this,"_faceStatus",!1),y(this,"_startMissing"),y(this,"_minConfidence",.8),y(this,"_missingTimeout",1e3),y(this,"_detectionInterval",300),y(this,"_lastDetectTime",0),y(this,"_videoFrameCallBackId"),y(this,"_video"),y(this,"_onFaceDetectionStateChanged"),Ee+=1,this.seq=Ee,this.log=t.log.createChild({id:"".concat(this.getAlias()).concat(Ee)}),this.log.info("created"),t.assetsPath&&(this.preLoadPromise=this.preload(t.assetsPath))}return t=e,a=[{key:"resetState",value:function(){this._faceStatus=!1,this._startMissing=null,this._lastDetectTime=0}},{key:"preload",value:(d=r(i().mark((function e(t){var r,n,o;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this.core.initVisionTaskRegistry(t,["FaceDetector"]);case 3:e.next=9;break;case 5:throw e.prev=5,e.t0=e.catch(0),r=this.core.errorModule,n=r.RtcError,o=r.ErrorCode,new n({code:o.INVALID_OPERATION,message:"FaceDetection preload error, please redeploy the assets of the npm package. detail: ".concat(e.t0)});case 9:case"end":return e.stop()}}),e,this,[[0,5]])}))),function(e){return d.apply(this,arguments)})},{key:"getGroup",value:function(){return"fd"}},{key:"getName",value:function(){return e.Name}},{key:"getAlias",value:function(){return"fd"}},{key:"getValidateRule",value:function(e){switch(e){case"start":return t=this.core,{type:"object",required:!0,properties:g,validate:function(e,r,n,o){var i,a=t.errorModule,s=a.RtcError,u=a.ErrorCode,l=a.ErrorCodeDictionary,h=e.onFaceDetectionStateChanged;if(h&&!t.utils.isFunction(h))throw new s({code:u.INVALID_PARAMETER,extraCode:l.INVALID_PARAMETER_TYPE,fnName:n,messageParams:{key:"onFaceDetectionStateChanged",value:c(h),rule:{type:"Function"}}});if(!(null==(i=t.room.videoManager.cameraTrack)?void 0:i.mediaTrack))throw new s({code:u.INVALID_OPERATION,extraCode:l.INVALID_OPERATION_NEED_VIDEO,fnName:n})}};case"update":return function(e){return{type:"object",required:!0,properties:w,validate:function(t,r,n,o){var i,a=e.errorModule,s=a.RtcError,u=a.ErrorCode,l=a.ErrorCodeDictionary,h=t.onFaceDetectionStateChanged;if(h&&!e.utils.isFunction(h))throw new s({code:u.INVALID_PARAMETER,extraCode:l.INVALID_PARAMETER_TYPE,fnName:n,messageParams:{key:"onFaceDetectionStateChanged",value:c(h),rule:{type:"Function"}}});if(!(null==(i=e.room.videoManager.cameraTrack)?void 0:i.mediaTrack))throw new s({code:u.INVALID_OPERATION,extraCode:l.INVALID_OPERATION_NEED_VIDEO,fnName:n})}}}(this.core);case"stop":return this.core,{name:"StopFaceDetectionOptions",required:!1}}var t}},{key:"getCurrentStatus",value:function(){var e=this,t=this._visionTaskRegistry.getResult(this._faceDetectorHash).detections;this._visionTaskRegistry.resetHashResults();var r=t.length>0;if(r){var n,i=[],a=o(t);try{for(a.s();!(n=a.n()).done;){var s,c=o(n.value.categories);try{for(c.s();!(s=c.n()).done;){var u=s.value;i.push(u.score)}}catch(e){c.e(e)}finally{c.f()}}}catch(e){a.e(e)}finally{a.f()}r&&(r=!!i.find((function(t){return t>=e._minConfidence})))}return r}},{key:"detectFace",value:function(){var e=this.getCurrentStatus();this._startMissing&&Date.now()-this._startMissing>=this._missingTimeout&&e!==this._faceStatus?(this._onFaceDetectionStateChanged(e),this._faceStatus=e,this._startMissing=null):Date.now()-this._lastDetectTime>=this._detectionInterval&&(this._faceStatus!==e&&(e||0===this._missingTimeout?(this._onFaceDetectionStateChanged(e),this._faceStatus=e):this._startMissing||(this._startMissing=Date.now())),this._lastDetectTime=Date.now()),this._videoFrameCallBackId=this._video.requestVideoFrameCallback(this.detectFace.bind(this))}},{key:"initFaceDetection",value:(f=r(i().mark((function e(){var t;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,window.VisionTaskRegistry.getInstance();case 2:return this._visionTaskRegistry=e.sent,e.next=5,this._visionTaskRegistry.register(window.VisionTaskType.FaceDetector);case 5:if(t=e.sent){e.next=8;break}return e.abrupt("return");case 8:this._faceDetectorHash=t,this._visionTaskRegistry.setVideo(this._faceDetectorHash,this._video);case 10:case"end":return e.stop()}}),e,this)}))),function(){return f.apply(this,arguments)})},{key:"updateOptions",value:function(e){e.onFaceDetectionStateChanged&&(this._onFaceDetectionStateChanged=e.onFaceDetectionStateChanged),e.detectionInterval&&(this._detectionInterval=e.detectionInterval),e.minConfidence&&(this._minConfidence=e.minConfidence),(0===e.missingTimeout||e.missingTimeout)&&(this._missingTimeout=e.missingTimeout)}},{key:"start",value:(h=r(i().mark((function e(t){var r,n,o,a,s;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=this.core.errorModule,n=r.RtcError,o=r.ErrorCode,this.updateOptions(t),this.preLoadPromise){e.next=6;break}if(this.core.assetsPath){e.next=5;break}throw new n({code:o.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});case 5:this.preLoadPromise=this.preload(this.core.assetsPath);case 6:return e.next=8,this.preLoadPromise;case 8:if(a=this.core.room.videoManager.cameraTrack,(s=null==a?void 0:a.player.element)&&s.srcObject){e.next=12;break}throw new n({code:o.DEVICE_ERROR,message:"please enable camera display to start detection"});case 12:return this._video=s,this.core.utils.isMediaStreamTrack(this._video.srcObject.getVideoTracks()[0])||(this._video.srcObject=new MediaStream([a.mediaTrack])),e.next=16,this.initFaceDetection().catch((function(e){throw new n({code:o.UNKNOWN_ERROR,message:e.message})}));case 16:this._videoFrameCallBackId=this._video.requestVideoFrameCallback(this.detectFace.bind(this)),a.on(this.core.enums.TrackEvent.MUTE,this.autoHandleMute,this),this.core.kvStatManager.addEnum({key:575700,value:1});case 19:case"end":return e.stop()}}),e,this)}))),function(e){return h.apply(this,arguments)})},{key:"autoHandleMute",value:function(){var e=this,t=this.core.room.videoManager.cameraTrack;this._faceStatus&&(this._faceStatus=!1,this._onFaceDetectionStateChanged(!1)),this._video.cancelVideoFrameCallback(this._videoFrameCallBackId),null==t||t.once(this.core.enums.TrackEvent.UNMUTE,(function(){e._videoFrameCallBackId=e._video.requestVideoFrameCallback(e.detectFace.bind(e))}))}},{key:"update",value:(l=r(i().mark((function e(t){return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:this.updateOptions(t),this.core.kvStatManager.addEnum({key:575701,value:1});case 2:case"end":return e.stop()}}),e,this)}))),function(e){return l.apply(this,arguments)})},{key:"stop",value:(u=r(i().mark((function e(){var t;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:this.resetState(),this._video.cancelVideoFrameCallback(this._videoFrameCallBackId),null==(t=this.core.room.videoManager.cameraTrack)||t.off(this.core.enums.TrackEvent.MUTE,this.autoHandleMute,this),this.core.kvStatManager.addEnum({key:575702,value:1});case 4:case"end":return e.stop()}}),e,this)}))),function(){return u.apply(this,arguments)})},{key:"destroy",value:function(){this.stop()}}],s=[{key:"isSupported",value:function(){if(ye<90)return!1;var e=document.createElement("canvas").getContext("webgl2");return!!(e&&e instanceof WebGL2RenderingContext)}}],a&&n(t.prototype,a),s&&n(t,s),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,a,s,u,l,h,f,d}();return y(_e,"Name","FaceDetection"),_e}));
|