diff --git a/uni_modules/Skin-cameraUTS/utssdk/app-android/index.vue b/uni_modules/Skin-cameraUTS/utssdk/app-android/index.vue
index c37a8c4..786f8c5 100644
--- a/uni_modules/Skin-cameraUTS/utssdk/app-android/index.vue
+++ b/uni_modules/Skin-cameraUTS/utssdk/app-android/index.vue
@@ -13,7 +13,7 @@
/**
* 组件名称,也就是开发者使用的标签
*/
- name: "xf-camera",
+ name: "skin-camera",
/**
* 组件涉及的事件声明,只有声明过的事件,才能被正常发送
*/
diff --git a/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.vue b/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.vue
index fed3abc..22f1f08 100644
--- a/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.vue
+++ b/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.vue
@@ -17,7 +17,7 @@
/**
* 组件名称,也就是开发者使用的标签
*/
- name: "xf-camera",
+ name: "skin-camera",
/**
* 组件涉及的事件声明,只有声明过的事件,才能被正常发送
*/
diff --git a/unpackage/cache/.app-android/class/META-INF/main-1773321122355.kotlin_module b/unpackage/cache/.app-android/class/META-INF/main-1773321122355.kotlin_module
deleted file mode 100644
index af32fd6..0000000
Binary files a/unpackage/cache/.app-android/class/META-INF/main-1773321122355.kotlin_module and /dev/null differ
diff --git a/unpackage/cache/.app-android/class/META-INF/main-1773321152346.kotlin_module b/unpackage/cache/.app-android/class/META-INF/main-1773321152346.kotlin_module
deleted file mode 100644
index ef915de..0000000
Binary files a/unpackage/cache/.app-android/class/META-INF/main-1773321152346.kotlin_module and /dev/null differ
diff --git a/unpackage/cache/.app-android/class/ktClasss.ser b/unpackage/cache/.app-android/class/ktClasss.ser
deleted file mode 100644
index 8f238bc..0000000
Binary files a/unpackage/cache/.app-android/class/ktClasss.ser and /dev/null differ
diff --git a/unpackage/cache/.app-android/class/uni/UNI644401D/GenApp$Companion.class b/unpackage/cache/.app-android/class/uni/UNI644401D/GenApp$Companion.class
deleted file mode 100644
index 79830bf..0000000
Binary files a/unpackage/cache/.app-android/class/uni/UNI644401D/GenApp$Companion.class and /dev/null differ
diff --git a/unpackage/cache/.app-android/class/uni/UNI644401D/GenApp.class b/unpackage/cache/.app-android/class/uni/UNI644401D/GenApp.class
deleted file mode 100644
index 484b642..0000000
Binary files a/unpackage/cache/.app-android/class/uni/UNI644401D/GenApp.class and /dev/null differ
diff --git a/unpackage/cache/.app-android/class/uni/UNI644401D/GenPagesIndexIndex$Companion.class b/unpackage/cache/.app-android/class/uni/UNI644401D/GenPagesIndexIndex$Companion.class
deleted file mode 100644
index 574667a..0000000
Binary files a/unpackage/cache/.app-android/class/uni/UNI644401D/GenPagesIndexIndex$Companion.class and /dev/null differ
diff --git a/unpackage/cache/.app-android/class/uni/UNI644401D/GenPagesIndexIndex$_takePhoto$1.class b/unpackage/cache/.app-android/class/uni/UNI644401D/GenPagesIndexIndex$_takePhoto$1.class
deleted file mode 100644
index ac46347..0000000
Binary files a/unpackage/cache/.app-android/class/uni/UNI644401D/GenPagesIndexIndex$_takePhoto$1.class and /dev/null differ
diff --git a/unpackage/cache/.app-android/class/uni/UNI644401D/GenPagesIndexIndex$onError$1.class b/unpackage/cache/.app-android/class/uni/UNI644401D/GenPagesIndexIndex$onError$1.class
deleted file mode 100644
index 0b0e92a..0000000
Binary files a/unpackage/cache/.app-android/class/uni/UNI644401D/GenPagesIndexIndex$onError$1.class and /dev/null differ
diff --git a/unpackage/cache/.app-android/class/uni/UNI644401D/GenPagesIndexIndex.class b/unpackage/cache/.app-android/class/uni/UNI644401D/GenPagesIndexIndex.class
deleted file mode 100644
index 6abf799..0000000
Binary files a/unpackage/cache/.app-android/class/uni/UNI644401D/GenPagesIndexIndex.class and /dev/null differ
diff --git a/unpackage/cache/.app-android/class/uni/UNI644401D/GenUniApp.class b/unpackage/cache/.app-android/class/uni/UNI644401D/GenUniApp.class
deleted file mode 100644
index 6bc7eaf..0000000
Binary files a/unpackage/cache/.app-android/class/uni/UNI644401D/GenUniApp.class and /dev/null differ
diff --git a/unpackage/cache/.app-android/class/uni/UNI644401D/IndexKt.class b/unpackage/cache/.app-android/class/uni/UNI644401D/IndexKt.class
deleted file mode 100644
index c0ecac3..0000000
Binary files a/unpackage/cache/.app-android/class/uni/UNI644401D/IndexKt.class and /dev/null differ
diff --git a/unpackage/cache/.app-android/class/uni/UNI644401D/UniAppConfig.class b/unpackage/cache/.app-android/class/uni/UNI644401D/UniAppConfig.class
deleted file mode 100644
index c1e9b49..0000000
Binary files a/unpackage/cache/.app-android/class/uni/UNI644401D/UniAppConfig.class and /dev/null differ
diff --git a/unpackage/cache/.app-android/dex/index/classes.dex b/unpackage/cache/.app-android/dex/index/classes.dex
deleted file mode 100644
index 1db6bec..0000000
Binary files a/unpackage/cache/.app-android/dex/index/classes.dex and /dev/null differ
diff --git a/unpackage/cache/.app-android/dex/pages/index/index/classes.dex b/unpackage/cache/.app-android/dex/pages/index/index/classes.dex
deleted file mode 100644
index e89ed75..0000000
Binary files a/unpackage/cache/.app-android/dex/pages/index/index/classes.dex and /dev/null differ
diff --git a/unpackage/cache/.app-android/sourcemap/index.kt.map b/unpackage/cache/.app-android/sourcemap/index.kt.map
deleted file mode 100644
index d742e6f..0000000
--- a/unpackage/cache/.app-android/sourcemap/index.kt.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["App.uvue","main.uts","uni_modules/Skin-cameraUTS/utssdk/interface.uts"],"sourcesContent":["\r\n\r\n","import App from './App.uvue'\r\n\r\nimport { createSSRApp } from 'vue'\r\nexport function createApp() {\r\n\tconst app = createSSRApp(App)\r\n\treturn {\r\n\t\tapp\r\n\t}\r\n}\nexport function main(app: IApp) {\n definePageRoutes();\n defineAppConfig();\n (createApp()['app'] as VueApp).mount(app, GenUniApp());\n}\n\nexport class UniAppConfig extends io.dcloud.uniapp.appframe.AppConfig {\n override name: string = \"SkinCamera\"\n override appid: string = \"__UNI__644401D\"\n override versionName: string = \"1.0.0\"\n override versionCode: string = \"100\"\n override uniCompilerVersion: string = \"4.87\"\n \n constructor() { super() }\n}\n\nimport GenPagesIndexIndexClass from './pages/index/index.uvue'\nfunction definePageRoutes() {\n__uniRoutes.push({ path: \"pages/index/index\", component: GenPagesIndexIndexClass, meta: { isQuit: true } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"uni-app x\"]]) } as UniPageRoute)\n}\nconst __uniTabBar: Map | null = null\nconst __uniLaunchPage: Map = _uM([[\"url\",\"pages/index/index\"],[\"style\",_uM([[\"navigationBarTitleText\",\"uni-app x\"]])]])\nfunction defineAppConfig(){\n __uniConfig.entryPagePath = '/pages/index/index'\n __uniConfig.globalStyle = _uM([[\"navigationBarTextStyle\",\"black\"],[\"navigationBarTitleText\",\"uni-app x\"],[\"navigationBarBackgroundColor\",\"#F8F8F8\"],[\"backgroundColor\",\"#F8F8F8\"]])\n __uniConfig.getTabBarConfig = ():Map | null => null\n __uniConfig.tabBar = __uniConfig.getTabBarConfig()\n __uniConfig.conditionUrl = ''\n __uniConfig.uniIdRouter = _uM()\n \n __uniConfig.ready = true\n}\n","export type GeneralCallbackResult = {\r\n\t/** 错误信息 */\r\n\terrMsg : string\r\n}\r\nexport type TakePhotoSuccessCallbackResult = {\r\n\t/** 照片文件的临时路径 (本地路径),安卓是jpg图片格式,ios是png */\r\n\ttempImagePath : string\r\n\tquality : string\r\n\terrMsg : string\r\n}\r\n/** 接口调用失败的回调函数 */\r\nexport type TakePhotoFailCallback = (res : GeneralCallbackResult) => void\r\n/** 接口调用成功的回调函数 */\r\nexport type TakePhotoSuccessCallback = (\r\n\tresult : TakePhotoSuccessCallbackResult\r\n) => void\r\n\r\n/** 接口调用结束的回调函数(调用成功、失败都会执行) */\r\nexport type TakePhotoCompleteCallback = (res : GeneralCallbackResult) => void\r\n\r\nexport type TakePhotoOption = {\r\n\t/** 接口调用结束的回调函数(调用成功、失败都会执行) */\r\n\tcomplete ?: TakePhotoCompleteCallback\r\n\t/** 接口调用失败的回调函数 */\r\n\tfail ?: TakePhotoFailCallback\r\n\t/** 成像质量\r\n\t *\r\n\t * 可选值:\r\n\t * - 'high': 高质量;\r\n\t * - 'normal': 普通质量;\r\n\t * - 'low': 低质量;\r\n\t * - 'original': 原图; */\r\n\tquality ?: 'high' | 'normal' | 'low' | 'original'\r\n\t/** \r\n\t * 是否开启镜像 */\r\n\tselfieMirror ?: boolean\r\n\t/** 接口调用成功的回调函数 */\r\n\tsuccess ?: TakePhotoSuccessCallback\r\n}\r\n\r\n\r\nexport type SetZoomSuccessCallbackResult = {\r\n\t/** 实际设置的缩放级别。由于系统限制,某些机型可能无法设置成指定值,会改用最接近的可设值。 */\r\n\tzoom : number\r\n\terrMsg : string\r\n}\r\n/** 接口调用结束的回调函数(调用成功、失败都会执行) */\r\nexport type SetZoomCompleteCallback = (res : GeneralCallbackResult) => void\r\n/** 接口调用失败的回调函数 */\r\nexport type SetZoomFailCallback = (res : GeneralCallbackResult) => void\r\n/** 接口调用成功的回调函数 */\r\nexport type CameraContextSetZoomSuccessCallback = (\r\n\tresult : SetZoomSuccessCallbackResult\r\n) => void\r\n\r\nexport type CameraContextSetZoomOption = {\r\n\t/** 缩放级别,范围[1, maxZoom]。zoom 可取小数,精确到小数后一位。maxZoom 可在 bindinitdone 返回值中获取。 */\r\n\tzoom : number\r\n\t/** 接口调用结束的回调函数(调用成功、失败都会执行) */\r\n\tcomplete ?: SetZoomCompleteCallback\r\n\t/** 接口调用失败的回调函数 */\r\n\tfail ?: SetZoomFailCallback\r\n\t/** 接口调用成功的回调函数 */\r\n\tsuccess ?: CameraContextSetZoomSuccessCallback\r\n}\r\n\r\nexport type StartRecordTimeoutCallbackResult = {\r\n\t/** 视频的文件的临时路径 (本地路径) */\r\n\ttempVideoPath : string\r\n}\r\n\r\n/** 接口调用结束的回调函数(调用成功、失败都会执行) */\r\nexport type StartRecordCompleteCallback = (res : GeneralCallbackResult) => void\r\n/** 接口调用失败的回调函数 */\r\nexport type StartRecordFailCallback = (res : GeneralCallbackResult) => void\r\n/** 超过录制时长上限时会结束录像并触发此回调,录像异常退出时也会触发此回调 */\r\nexport type StartRecordTimeoutCallback = (\r\n\tresult : StartRecordTimeoutCallbackResult\r\n) => void\r\n/** 接口调用成功的回调函数 */\r\nexport type CameraContextStartRecordSuccessCallback = (\r\n\tres : GeneralCallbackResult\r\n) => void\r\nexport type CameraContextStartRecordOption = {\r\n\t/** 接口调用结束的回调函数(调用成功、失败都会执行) */\r\n\tcomplete ?: StartRecordCompleteCallback\r\n\t/** 接口调用失败的回调函数 */\r\n\tfail ?: StartRecordFailCallback\r\n\t/** \r\n\t * 是否开启镜像 */\r\n\tselfieMirror ?: boolean\r\n\t/** 接口调用成功的回调函数 */\r\n\tsuccess ?: CameraContextStartRecordSuccessCallback\r\n\t/** \r\n\t * 录制时长上限,单位为秒,最长不能超过 5 分钟 */\r\n\ttimeout ?: number\r\n\t/** 超过录制时长上限时会结束录像并触发此回调,录像异常退出时也会触发此回调 */\r\n\ttimeoutCallback ?: StartRecordTimeoutCallback\r\n}\r\n\r\nexport type StopRecordSuccessCallbackResult = {\r\n\t/** 视频的文件的临时路径 (本地路径) */\r\n\ttempVideoPath : string\r\n\terrMsg : string\r\n}\r\n/** 接口调用结束的回调函数(调用成功、失败都会执行) */\r\nexport type StopRecordCompleteCallback = (res : GeneralCallbackResult) => void\r\n/** 接口调用失败的回调函数 */\r\nexport type StopRecordFailCallback = (res : GeneralCallbackResult) => void\r\n/** 接口调用成功的回调函数 */\r\nexport type CameraContextStopRecordSuccessCallback = (\r\n\tresult : StopRecordSuccessCallbackResult\r\n) => void\r\nexport type CameraContextStopRecordOption = {\r\n\t/** 接口调用结束的回调函数(调用成功、失败都会执行) */\r\n\tcomplete ?: StopRecordCompleteCallback\r\n\t/** 启动视频压缩,压缩效果同`chooseVideo` */\r\n\tcompressed ?: boolean\r\n\t/** 接口调用失败的回调函数 */\r\n\tfail ?: StopRecordFailCallback\r\n\t/** 接口调用成功的回调函数 */\r\n\tsuccess ?: CameraContextStopRecordSuccessCallback\r\n}\r\n\r\n/** 回调函数 */\r\nexport type OnCameraFrameCallback = (result : OnCameraFrameCallbackResult) => void\r\nexport type OnCameraFrameCallbackResult = {\r\n\t/** 图像像素点数据,一维数组,每四项表示一个像素点的 rgba */\r\n\tdata : any\r\n\t/** 图像数据矩形的高度 */\r\n\theight : number\r\n\t/** 图像数据矩形的宽度 */\r\n\twidth : number\r\n}\r\n/** 接口调用成功的回调函数 */\r\nexport type StartSuccessCallback = (res : GeneralCallbackResult) => void\r\n/** 接口调用失败的回调函数 */\r\ntype StartFailCallback = (res : GeneralCallbackResult) => void\r\n/** 接口调用结束的回调函数(调用成功、失败都会执行) */\r\ntype StartCompleteCallback = (res : GeneralCallbackResult) => void\r\nexport type CameraFrameListenerStartOption = {\r\n\t/** 接口调用结束的回调函数(调用成功、失败都会执行) */\r\n\tcomplete ?: StartCompleteCallback\r\n\t/** 接口调用失败的回调函数 */\r\n\tfail ?: StartFailCallback\r\n\t/** 接口调用成功的回调函数 */\r\n\tsuccess ?: StartSuccessCallback\r\n\t/** [Worker](https://developers.weixin.qq.com/miniprogram/dev/api/worker/Worker.html)\r\n\t *\r\n\t * 可选参数。如果需要在 iOS ExperimentalWorker 内监听摄像头帧数据,则需要传入对应 Worker 对象。详情 [Worker.getCameraFrameData](https://developers.weixin.qq.com/miniprogram/dev/api/worker/Worker.getCameraFrameData.html) */\r\n\t// worker ?: Worker\r\n}\r\n\r\n\r\n/** 接口调用结束的回调函数(调用成功、失败都会执行) */\r\nexport type StopCompleteCallback = (res : GeneralCallbackResult) => void\r\n/** 接口调用失败的回调函数 */\r\nexport type StopFailCallback = (res : GeneralCallbackResult) => void\r\n/** 接口调用成功的回调函数 */\r\nexport type StopSuccessCallback = (res : GeneralCallbackResult) => void\r\nexport type StopOption = {\r\n\t/** 接口调用结束的回调函数(调用成功、失败都会执行) */\r\n\tcomplete ?: StopCompleteCallback\r\n\t/** 接口调用失败的回调函数 */\r\n\tfail ?: StopFailCallback\r\n\t/** 接口调用成功的回调函数 */\r\n\tsuccess ?: StopSuccessCallback\r\n}\r\n\r\nexport type FlashMode = 'auto' | 'on' | 'off' | 'torch'\r\nexport type DevicePosition = 'back' | 'front'\r\nexport type Resolution = 'low' | 'medium' | 'high'\r\nexport type FrameSize = 'medium' | 'small' | 'large'\r\nexport type QualityType = 'high' | 'normal' | 'low' | 'original'\r\n\r\n\r\nexport type CameraConfig = {\r\n\tflash ?: FlashMode\r\n\tdevicePosition ?: DevicePosition\r\n\tresolution ?: Resolution\r\n\tframeSize ?: FrameSize\r\n}\r\n\r\n//////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n/** 接口调用结束的回调函数(调用成功、失败都会执行) */\r\nexport type SwitchCompleteCallback = (res : GeneralCallbackResult) => void\r\n/** 接口调用失败的回调函数 */\r\nexport type SwitchFailCallback = (res : GeneralCallbackResult) => void\r\n/** 接口调用成功的回调函数 */\r\nexport type SwitchSuccessCallback = (res : GeneralCallbackResult) => void\r\nexport type SwitchOption = {\r\n\tposition : DevicePosition\r\n\t/** 接口调用结束的回调函数(调用成功、失败都会执行) */\r\n\tcomplete ?: SwitchCompleteCallback\r\n\t/** 接口调用失败的回调函数 */\r\n\tfail ?: SwitchFailCallback\r\n\t/** 接口调用成功的回调函数 */\r\n\tsuccess ?: SwitchSuccessCallback\r\n}\r\n\r\n//////////////////////////////////////////////////////////////////////////////////////////////////\r\nexport type OnCameraFrameListenerOption = {\r\n\tsuccess ?: OnCameraFrameCallback\r\n}\r\n\r\nexport type TakePhoto = (options : TakePhotoOption) => void\r\nexport type SetZoom = (options : CameraContextSetZoomOption) => void\r\nexport type StartRecord = (options : CameraContextStartRecordOption) => void\r\nexport type StopRecord = (options : CameraContextStopRecordOption) => void\r\nexport type OnCameraFrameListener = (options : OnCameraFrameListenerOption) => void\r\nexport type StartCameraFrame = (options : CameraFrameListenerStartOption) => void\r\nexport type StopCameraFrame = (options : StopOption) => void\r\nexport type SwitchCamera = (options : SwitchOption) => void"],"names":[],"mappings":";;;;;;;;;;;;;;+BA4BQ,QAAA;+BAVA,aAAA;;;;;;AAhBP,IAAI,wBAAgB,CAAA;AAEf;;iBACJ,wBAAQ;YACP,QAAQ,GAAG,CAAC,cAAY;QACzB;;kBACA,sBAAM;YACL,QAAQ,GAAG,CAAC,YAAU;QACvB;;kBACA,MAAM;YACL,QAAQ,GAAG,CAAC,YAAU;QACvB;;4BAEA,MAAmB;YAClB,QAAQ,GAAG,CAAC,yBAAuB;YACnC,IAAI,cAAY,EAAA,CAAK,CAAC,EAAE;gBACnB,+BACH,QAAO,YACP,WAAU;gBAEX,gBAAgB,KAAK,GAAG;gBACxB,WAAW,KAAI;oBACd,gBAAgB,CAAA;gBACjB,GAAG,IAAI;cACD,IAGP,CAHO,IAAI,KAAK,GAAG,GAAC,CAAA,CAAI,cAAY,CAAA,CAAI,IAAI,EAAE;gBAC7C,gBAAgB,KAAK,GAAG;gBACpB;;QAEN;;eAEA,MAAM;YACL,QAAQ,GAAG,CAAC,YAAU;QACvB;;;;;;;;;;;;;;AACD;;;;;;;;;;;;;;;AChCK,IAAU,aAAS,cAAA;IACxB,IAAM,MAAM;IACZ,OAAO,IACN,SAAA;AAEF;AACM,IAAU,KAAK,KAAK,IAAI,EAAA;IAC1B;IACA;IACA,CAAC,WAAW,CAAC,MAAM,CAAA,EAAA,CAAI,MAAM,EAAE,KAAK,CAAC,KAAK;AAC9C;AAEM,WAAO,eAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS;IACjE,aAAS,MAAM,MAAM,GAAG,YAAY;IACpC,aAAS,OAAO,MAAM,GAAG,gBAAgB;IACzC,aAAS,aAAa,MAAM,GAAG,OAAO;IACtC,aAAS,aAAa,MAAM,GAAG,KAAK;IACpC,aAAS,oBAAoB,MAAM,GAAG,MAAM;IAE5C,gBAAgB,KAAK,GAArB,CAAwB;;AAI5B,IAAS,mBAAgB;IACzB,YAAY,IAAI,CAAmK,aAAhK,OAAM,qBAAqB,qCAAoC,OAA0B,YAAlB,SAAQ,IAAI,GAAmB,QAAO,IAAM,4BAAyB;AAC/J;AAEA,IAAM,iBAAiB,IAAI,MAAM,EAAE,GAAG,KAAW,IAAM,SAAM,qBAAsB,WAAQ,IAAM,4BAAyB;AAC1H,IAAS,kBAAe;IACtB,YAAY,aAAa,GAAG;IAC5B,YAAY,WAAW,GAAG,IAAM,4BAAyB,SAAU,4BAAyB,aAAc,kCAA+B,WAAY,qBAAkB;IACvK,YAAY,eAAe,GAAG,OAAG,IAAI,MAAM,EAAE,GAAG;eAAa,IAAI;;IACjE,YAAY,MAAM,GAAG,YAAY,eAAe;IAChD,YAAY,YAAY,GAAG;IAC3B,YAAY,WAAW,GAAG;IAE1B,YAAY,KAAK,GAAG,IAAI;AAC1B;;;;8BCxCA,EAAE;;;;8BAAF,EAAE;;;;uBAAF,EAAE"}
\ No newline at end of file
diff --git a/unpackage/cache/.app-android/sourcemap/pages/index/index.kt.map b/unpackage/cache/.app-android/sourcemap/pages/index/index.kt.map
deleted file mode 100644
index 5f14d57..0000000
--- a/unpackage/cache/.app-android/sourcemap/pages/index/index.kt.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["pages/index/index.uvue"],"sourcesContent":["\n\n\t\n\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\n\n\n\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAgBC,OAKO,6BAA6B,CAJnC;OAIM,6BAA6B,CAHnC;OAGM,6BAA6B,CAFnC;OAEM,6BAA6B,CADnC;AAII;;eAaJ,sBAAM,CAaN;;;;;;eAhDD,IASc,eAAA,IATD,WAAM,qBAAkB;YAEpC,IAKO,QAAA,IAAA,EAAA;gBAJN,IAAuC,UAAA,IAA9B,aAAO,KAAA,UAAU,GAAE,MAAE,CAAA,EAAA;oBAAA;iBAAA;gBAC9B,IAAA,kBAAA,IACgC,EAAA,IADrB,WAA6C,IAA7C,IAAA,YAAA,UAAA,sBAAA,SAA+C,aAAO,KAAA,OAAO,EAAG,WAAO,KAAA,KAAK,EACrF,cAAU,KAAA,MAAM;;;;;2BACL,KAAA,SAAS,GAAtB;oBAAA,IAAkE,SAAA,gBAA1C,UAAK,aAAa,SAAK,KAAA,SAAS;;;;;;;;;aAmBvD;aACA;aACA;aAEA;aACA;aACA;aACA;;;mBAPA,WAAO,OACP,cAAU,GAAG,EACb,eAAW,GAAG,EAEd,WAAO,MACP,YAAQ,SACR,eAAW,IACX,eAAW;;aAkBZ;aAAA,eAAQ,KAAM,GAAG,EAAA;QAChB,QAAQ,GAAG,CAAC,KAAG;IAChB;aACA;aAAA,oBAAU;QACT,UASK,gBARJ,UAAS,IAAC,KAAM,+BAAiC;YAChD,QAAQ,GAAG,CAAC,aAAa,KAAG;YAC5B,IAAI,CAAC,SAAQ,GAAI,IAAI,aAAa;QAEnC;UACA,OAAM,IAAC,KAAM,sBAAwB;YACpC,QAAQ,GAAG,CAAC,aAAa,KAAG;QAC7B;;IAEF;;;;;;;;;;;;;;;;;;;;AAEF"}
\ No newline at end of file
diff --git a/unpackage/cache/.app-android/src/.manifest.json b/unpackage/cache/.app-android/src/.manifest.json
deleted file mode 100644
index b33da43..0000000
--- a/unpackage/cache/.app-android/src/.manifest.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "version": "1",
- "env": {
- "compiler_version": "4.87"
- },
- "files": {
- "pages/index/index.kt": {
- "class": "GenPagesIndexIndex",
- "md5": "0ba1bdcb867acacda8a20ff033971ed372d8a0d5"
- },
- "index.kt": {
- "class": "",
- "md5": "3d228610d7ea1f50297ff2c98f1d707625ffc2ff"
- }
- }
-}
\ No newline at end of file
diff --git a/unpackage/cache/.app-android/src/index.kt b/unpackage/cache/.app-android/src/index.kt
deleted file mode 100644
index 403ae7a..0000000
--- a/unpackage/cache/.app-android/src/index.kt
+++ /dev/null
@@ -1,126 +0,0 @@
-@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION")
-package uni.UNI644401D
-import io.dcloud.uniapp.*
-import io.dcloud.uniapp.extapi.*
-import io.dcloud.uniapp.framework.*
-import io.dcloud.uniapp.runtime.*
-import io.dcloud.uniapp.vue.*
-import io.dcloud.uniapp.vue.shared.*
-import io.dcloud.unicloud.*
-import io.dcloud.uts.*
-import io.dcloud.uts.Map
-import io.dcloud.uts.Set
-import io.dcloud.uts.UTSAndroid
-import kotlin.properties.Delegates
-import io.dcloud.uniapp.extapi.exit as uni_exit
-import io.dcloud.uniapp.extapi.showToast as uni_showToast
-val runBlock1 = run {
- __uniConfig.getAppStyles = fun(): Map>> {
- return GenApp.styles
- }
-}
-var firstBackTime: Number = 0
-open class GenApp : BaseApp {
- constructor(__ins: ComponentInternalInstance) : super(__ins) {
- onLaunch(fun(_: OnLaunchOptions) {
- console.log("App Launch", " at App.uvue:7")
- }
- , __ins)
- onAppShow(fun(_: OnShowOptions) {
- console.log("App Show", " at App.uvue:10")
- }
- , __ins)
- onAppHide(fun() {
- console.log("App Hide", " at App.uvue:13")
- }
- , __ins)
- onLastPageBackPress(fun() {
- console.log("App LastPageBackPress", " at App.uvue:17")
- if (firstBackTime == 0) {
- uni_showToast(ShowToastOptions(title = "再按一次退出应用", position = "bottom"))
- firstBackTime = Date.now()
- setTimeout(fun(){
- firstBackTime = 0
- }, 2000)
- } else if (Date.now() - firstBackTime < 2000) {
- firstBackTime = Date.now()
- uni_exit(null)
- }
- }
- , __ins)
- onExit(fun() {
- console.log("App Exit", " at App.uvue:34")
- }
- , __ins)
- }
- companion object {
- val styles: Map>> by lazy {
- _nCS(_uA(
- styles0
- ))
- }
- val styles0: Map>>
- get() {
- return _uM("uni-row" to _pS(_uM("flexDirection" to "row")), "uni-column" to _pS(_uM("flexDirection" to "column")))
- }
- }
-}
-val GenAppClass = CreateVueAppComponent(GenApp::class.java, fun(): VueComponentOptions {
- return VueComponentOptions(type = "app", name = "", inheritAttrs = true, inject = Map(), props = Map(), propsNeedCastKeys = _uA(), emits = Map(), components = Map(), styles = GenApp.styles)
-}
-, fun(instance): GenApp {
- return GenApp(instance)
-}
-)
-val GenPagesIndexIndexClass = CreateVueComponent(GenPagesIndexIndex::class.java, fun(): VueComponentOptions {
- return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesIndexIndex.inheritAttrs, inject = GenPagesIndexIndex.inject, props = GenPagesIndexIndex.props, propsNeedCastKeys = GenPagesIndexIndex.propsNeedCastKeys, emits = GenPagesIndexIndex.emits, components = GenPagesIndexIndex.components, styles = GenPagesIndexIndex.styles)
-}
-, fun(instance, renderer): GenPagesIndexIndex {
- return GenPagesIndexIndex(instance, renderer)
-}
-)
-fun createApp(): UTSJSONObject {
- val app = createSSRApp(GenAppClass)
- return _uO("app" to app)
-}
-fun main(app: IApp) {
- definePageRoutes()
- defineAppConfig()
- (createApp()["app"] as VueApp).mount(app, GenUniApp())
-}
-open class UniAppConfig : io.dcloud.uniapp.appframe.AppConfig {
- override var name: String = "SkinCamera"
- override var appid: String = "__UNI__644401D"
- override var versionName: String = "1.0.0"
- override var versionCode: String = "100"
- override var uniCompilerVersion: String = "4.87"
- constructor() : super() {}
-}
-fun definePageRoutes() {
- __uniRoutes.push(UniPageRoute(path = "pages/index/index", component = GenPagesIndexIndexClass, meta = UniPageMeta(isQuit = true), style = _uM("navigationBarTitleText" to "uni-app x")))
-}
-val __uniLaunchPage: Map = _uM("url" to "pages/index/index", "style" to _uM("navigationBarTitleText" to "uni-app x"))
-fun defineAppConfig() {
- __uniConfig.entryPagePath = "/pages/index/index"
- __uniConfig.globalStyle = _uM("navigationBarTextStyle" to "black", "navigationBarTitleText" to "uni-app x", "navigationBarBackgroundColor" to "#F8F8F8", "backgroundColor" to "#F8F8F8")
- __uniConfig.getTabBarConfig = fun(): Map? {
- return null
- }
- __uniConfig.tabBar = __uniConfig.getTabBarConfig()
- __uniConfig.conditionUrl = ""
- __uniConfig.uniIdRouter = _uM()
- __uniConfig.ready = true
-}
-open class GenUniApp : UniAppImpl() {
- open val vm: GenApp?
- get() {
- return getAppVm() as GenApp?
- }
- open val `$vm`: GenApp?
- get() {
- return getAppVm() as GenApp?
- }
-}
-fun getApp(): GenUniApp {
- return getUniApp() as GenUniApp
-}
diff --git a/unpackage/cache/.app-android/src/pages/index/index.kt b/unpackage/cache/.app-android/src/pages/index/index.kt
deleted file mode 100644
index ad2e388..0000000
--- a/unpackage/cache/.app-android/src/pages/index/index.kt
+++ /dev/null
@@ -1,93 +0,0 @@
-@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION")
-package uni.UNI644401D
-import io.dcloud.uniapp.*
-import io.dcloud.uniapp.extapi.*
-import io.dcloud.uniapp.framework.*
-import io.dcloud.uniapp.runtime.*
-import io.dcloud.uniapp.vue.*
-import io.dcloud.uniapp.vue.shared.*
-import io.dcloud.unicloud.*
-import io.dcloud.uts.*
-import io.dcloud.uts.Map
-import io.dcloud.uts.Set
-import io.dcloud.uts.UTSAndroid
-import kotlin.properties.Delegates
-import uts.sdk.modules.SkinCameraUTS.XfCameraComponent
-import uts.sdk.modules.SkinCameraUTS.takePhoto
-import uts.sdk.modules.SkinCameraUTS.TakePhotoOption
-import uts.sdk.modules.SkinCameraUTS.TakePhotoSuccessCallbackResult
-import uts.sdk.modules.SkinCameraUTS.GeneralCallbackResult
-open class GenPagesIndexIndex : BasePage {
- constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {
- onLoad(fun(_: OnLoadOptions) {}, __ins)
- }
- @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE")
- override fun `$render`(): Any? {
- val _ctx = this
- val _cache = this.`$`.renderCache
- return _cE("scroll-view", _uM("class" to "page-scroll-view"), _uA(
- _cE("view", null, _uA(
- _cE("button", _uM("onClick" to _ctx._takePhoto), "拍照", 8, _uA(
- "onClick"
- )),
- _cE(XfCameraComponent.name, _uM("style" to _nS(_uM("height" to "750rpx", "background-color" to "red")), "onError" to _ctx.onError, "flash" to _ctx.flash, "position" to _ctx.device), null, 44, _uA(
- "onError",
- "flash",
- "position"
- )),
- if (isTrue(_ctx.imagePath)) {
- _cE("image", _uM("key" to 0, "mode" to "aspectFit", "src" to _ctx.imagePath), null, 8, _uA(
- "src"
- ))
- } else {
- _cC("v-if", true)
- }
- ))
- ))
- }
- open var yanse: String by `$data`
- open var widthNum: Number by `$data`
- open var heightNum: Number by `$data`
- open var flash: String by `$data`
- open var device: String by `$data`
- open var imagePath: String by `$data`
- open var videoPath: String by `$data`
- @Suppress("USELESS_CAST")
- override fun data(): Map {
- return _uM("yanse" to "red", "widthNum" to 750, "heightNum" to 200, "flash" to "on", "device" to "front", "imagePath" to "", "videoPath" to "https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/2minute-demo.mp4")
- }
- open var onError = ::gen_onError_fn
- open fun gen_onError_fn(res: Any) {
- console.log(res, " at pages/index/index.uvue:54")
- }
- open var _takePhoto = ::gen__takePhoto_fn
- open fun gen__takePhoto_fn() {
- takePhoto(TakePhotoOption(success = fun(res: TakePhotoSuccessCallbackResult){
- console.log("takePhoto", res, " at pages/index/index.uvue:59")
- this.imagePath = res.tempImagePath
- }
- , fail = fun(res: GeneralCallbackResult){
- console.log("takePhoto", res, " at pages/index/index.uvue:64")
- }
- ))
- }
- companion object {
- val styles: Map>> by lazy {
- _nCS(_uA(
- styles0
- ), _uA(
- GenApp.styles
- ))
- }
- val styles0: Map>>
- get() {
- return _uM("video" to _pS(_uM("width" to "100%", "height" to 200)))
- }
- var inheritAttrs = true
- var inject: Map> = _uM()
- var emits: Map = _uM()
- var props = _nP(_uM())
- var propsNeedCastKeys: UTSArray = _uA()
- var components: Map = _uM()
- }
-}
diff --git a/unpackage/cache/.app-android/tsc/app-android/.tsbuildInfo b/unpackage/cache/.app-android/tsc/app-android/.tsbuildInfo
deleted file mode 100644
index fe32506..0000000
--- a/unpackage/cache/.app-android/tsc/app-android/.tsbuildInfo
+++ /dev/null
@@ -1 +0,0 @@
-{"program":{"fileNames":["../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/boolean.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/console.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/date.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/error.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/json.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/map.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/math.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/number.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/regexp.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/set.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/string.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/timers.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/utsjsonobject.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/arraybuffer.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/float32array.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/float64array.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/int8array.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/int16array.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/int32array.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/uint8array.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/uint8clampedarray.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/uint16array.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/uint32array.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/dataview.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/iterable.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/common.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/shims.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es5.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2015.collection.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2015.promise.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2015.symbol.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2015.symbol.wellknown.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2015.iterable.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2018.asynciterable.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2018.asyncgenerator.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2018.promise.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2020.symbol.wellknown.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/index.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/index.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/hbuilder-x/hbuilderx.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/hbuilder-x/index.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/@vue/shared/dist/shared.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/@vue/reactivity/dist/reactivity.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/@vue/runtime-core/dist/runtime-core.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/@vue/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/vue.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/shims/common.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/shims/app-android.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/filedescriptor.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/ibinder.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/iinterface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/sparsearray.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/sparsebooleanarray.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/arraymap.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/size.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/closeable.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/flushable.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/outputstream.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/inputstream.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/basebundle.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/persistablebundle.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/sizef.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/serializable.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/bundle.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/parcel.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/parcelable.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/clipdescription.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/icu/util/ulocale.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/localelist.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/blendmode.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/media/audioattributes.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/vibrationattributes.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/vibrationeffect.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/vibrator.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/combinedvibration.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/vibratormanager.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/keyevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/androidruntimeexception.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/keycharactermap.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/lights/lightstate.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/lights/light.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/lights/lightsrequest.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/lights/lightsmanager.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/batterystate.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/hardwarebuffer.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/memoryfile.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/sensor.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/triggerevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/triggereventlistener.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/sensorlistener.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/channel.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/sensordirectchannel.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/sensorevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/sensoreventlistener.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/printer.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/messenger.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/message.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/messagequeue.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/looper.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/handler.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/sensormanager.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputdevice.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/insets.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/rect.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/rectf.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/writer.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/socketaddress.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/proxy.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/url.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/uri.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/watchable.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/watchkey.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/watchservice.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/linkoption.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/privilegedexceptionaction.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/privilegedaction.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/provider.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/key.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/publickey.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/cert/certificate.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/cert/certpath.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/timestamp.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/codesigner.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/codesource.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/guard.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/permission.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/permissioncollection.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/protectiondomain.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/domaincombiner.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/accesscontrolcontext.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/javax/security/auth/subject.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/principal.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/attribute/userprincipal.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/attribute/groupprincipal.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/attribute/userprincipallookupservice.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/pathmatcher.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/buffer.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/byteorder.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/doublebuffer.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/shortbuffer.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/charbuffer.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/intbuffer.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/floatbuffer.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/longbuffer.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/bytebuffer.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/mappedbytebuffer.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/writablebytechannel.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/gatheringbytechannel.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/openoption.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/readablebytechannel.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/scatteringbytechannel.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/bytechannel.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/seekablebytechannel.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/attribute/fileattribute.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/interruptiblechannel.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/spi/abstractinterruptiblechannel.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/completionhandler.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/asynchronouschannel.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/asynchronousfilechannel.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/filelock.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/filechannel.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/filestore.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/accessmode.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/copyoption.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/directorystream.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/spi/filesystemprovider.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/filesystem.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/path.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/file.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/printwriter.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/matrix.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/motionevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/temporal.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/temporalunit.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/temporalamount.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/duration.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/path.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/region.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/accessibility/accessibilitywindowinfo.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/accessibility/accessibilitynodeinfo.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/autofill/autofillid.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/componentname.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/credentials/credentialoption.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/credentials/getcredentialrequest.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/outcomereceiver.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/autofill/autofillvalue.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/viewstructure.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/locusid.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/contentcapture/contentcapturecontext.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/contentcapture/contentcapturesession.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/longsparsearray.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/property.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/attributeset.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/animation/transformation.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/animation/timeinterpolator.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/animation/interpolator.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/animation/animation.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/animation/animator.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/animation/statelistanimator.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/fileinputstream.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/fileoutputstream.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/ioexception.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/networkinterface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/inetaddress.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/datagrampacket.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/socketoption.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/pipe.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/networkchannel.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/socket.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/socketchannel.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/socketoptions.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/socketimpl.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/socketimplfactory.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/serversocket.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/serversocketchannel.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/protocolfamily.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/selector.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/selectionkey.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/spi/abstractselectionkey.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/spi/abstractselector.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/spi/selectorprovider.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/selectablechannel.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/spi/abstractselectablechannel.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/membershipkey.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/multicastchannel.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/datagramchannel.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/datagramsocket.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/parcelfiledescriptor.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/assetfiledescriptor.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/xmlresourceparser.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/assetmanager.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/xfermode.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/shader.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/patheffect.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/maskfilter.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/colorfilter.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/paint.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/fonts/font.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/fonts/fontfamily.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/fonts/fontvariationaxis.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/fonts/fontstyle.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/typeface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/displaymetrics.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/typedvalue.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/colorstatelist.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/typedarray.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/changedpackages.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/moduleinfo.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/configuration.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/userhandle.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/androidexception.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/intentsender.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/permissioninfo.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/componentinfo.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/serviceinfo.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/attribution.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/featureinfo.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/featuregroupinfo.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/signature.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/signinginfo.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/instrumentationinfo.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/activityinfo.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/patternmatcher.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/pathpermission.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/providerinfo.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/configurationinfo.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/packageinfo.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/permissiongroupinfo.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/versionedpackage.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/attributionsource.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/net/uri.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/contentobserver.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/chararraybuffer.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/datasetobserver.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/cursor.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/contentvalues.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/cancellationsignal.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/componentcallbacks.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/componentcallbacks2.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/contentprovider.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/colorspace.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/drawfilter.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/ninepatch.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/color.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/mesh.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/gainmap.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/bitmapshader.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/runtimeshader.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/rendereffect.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/text/linebreakconfig.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/text/measuredtext.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/recordingcanvas.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/outline.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/rendernode.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/matrix44.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/canvas.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/picture.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/bitmap.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/drawable/icon.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/syncadaptertype.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/contentproviderresult.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/contentproviderclient.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/accounts/account.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/syncrequest.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/syncstatusobserver.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/syncinfo.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/contentresolver.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/urirelativefilter.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/urirelativefiltergroup.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/intentfilter.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/resolveinfo.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/archivedpackageinfo.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/pendingintent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/packageinstaller.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/installsourceinfo.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/packagemanager.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/packageiteminfo.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/applicationinfo.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/loader/assetsprovider.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/om/overlayidentifier.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/om/overlayinfo.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/loader/resourcesprovider.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/loader/resourcesloader.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/movie.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/resources.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/drawable/drawable.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/translation/translationresponsevalue.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/translation/viewtranslationresponse.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/translation/viewtranslationcallback.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/accessibility/accessibilitynodeprovider.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/contentinfo.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/onreceivecontentlistener.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/surroundingtext.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/text/inputtype.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/editorinfo.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/window/onbackinvokedcallback.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/window/onbackinvokeddispatcher.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/actionprovider.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/menuitem.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/submenu.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/menu.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/menuinflater.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/actionmode.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/windowinsetsanimationcontroller.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/windowinsetsanimationcontrollistener.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/windowinsetscontroller.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/window/inputtransfertoken.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/syncfence.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/surfacecontrol.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/attachedsurfacecontrol.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/abssavedstate.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/extractedtext.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/textsnapshot.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/inputcontentinfo.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/handwritinggesture.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/completioninfo.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/correctioninfo.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/textattribute.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/previewablehandwritinggesture.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/extractedtextrequest.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/inputconnection.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/accessibility/accessibilityrecord.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/accessibility/accessibilityevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/accessibility/accessibilityeventsource.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/pointericon.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/contextmenu.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/windowid.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/point.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/roundedcorner.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/overlayproperties.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/display/deviceproductinfo.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/display.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/displayhash/displayhash.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/displayhash/displayhashresultcallback.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/displaycutout.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/displayshape.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/windowinsets.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/windowinsetsanimation.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/surfacetexture.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/surface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/scrollcapturesession.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/scrollcapturecallback.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/touchdelegate.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/dragevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/translation/translationspec.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/translation/translationcapability.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/view.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/text/textpaint.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/text/style/characterstyle.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/text/style/updateappearance.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/text/style/clickablespan.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/text/spanned.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/text/spannable.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/format/textstyle.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/temporaladjuster.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/format/decimalstyle.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/format/resolverstyle.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/temporalfield.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/valuerange.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/temporalquery.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/temporalaccessor.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/text/parseposition.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/format/formatstyle.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/offsettime.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/month.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/chronoperiod.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/era.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/chronolocaldate.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/chronofield.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/isoera.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/abstractchronology.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/dayofweek.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/localdatetime.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/isochronology.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/period.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/localdate.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/localtime.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/chronolocaldatetime.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/chronozoneddatetime.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/chronology.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/text/characteriterator.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/text/attributedcharacteriterator.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/text/fieldposition.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/text/format.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/format/datetimeformatter.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/offsetdatetime.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/instant.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/zone/zoneoffsettransition.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/zone/zonerules.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/zoneoffset.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/zoneid.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/instantsource.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/clock.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/zoneddatetime.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/textclassifier/textlinks.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/clipdata.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/intent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/serviceconnection.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/sqlite/sqliteclosable.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/sqlite/sqliteprogram.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/sqlite/sqlitestatement.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/sqlite/sqlitequery.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/sqlite/sqlitecursordriver.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/sqlite/sqliterawstatement.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/databaseerrorhandler.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/sqlite/sqlitetransactionlistener.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/sqlite/sqlitedatabase.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/broadcastreceiver.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/sharedpreferences.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/context.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/loader.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/loadermanager.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/assist/assistcontent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/viewparent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/viewmanager.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/viewoverlay.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/animation/layouttransition.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/animation/layoutanimationcontroller.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/viewgroup.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/transition/scene.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/componentcaller.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/transition/pathmotion.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/transition/transition.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/sharedelementcallback.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/layoutinflater.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/fragment.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/draganddroppermissions.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/widget/adapter.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/widget/spinneradapter.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/fragmenttransaction.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/actionbar.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/dialoginterface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/searchevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/media/session/playbackstate.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/media/rating.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/media/mediadescription.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/media/mediametadata.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/resultreceiver.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/media/session/mediacontroller.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/framemetrics.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/transition/transitionmanager.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/window.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/dialog.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/voiceinteractor.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/taskstackbuilder.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/window/trustedpresentationthresholds.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/choreographer.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/surfacecontrolinputreceiver.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/windowmetrics.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/windowmanager.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/pictureinpictureuistate.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/contextparams.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/contextwrapper.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/contextthemewrapper.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/window/splashscreen.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/widget/toolbar.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/rational.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/remoteaction.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/pictureinpictureparams.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/application.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/fragmentmanager.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/activity.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/app-android/utsactivitycallback.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/app-android/utsandroid.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/app-android/utsandroidhookproxy.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/app-js/utsjs.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/app-android/index.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/worker.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/webviewstyles.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/viewtotempfilepathoptions.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/drawablecontext.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/snapshotoptions.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/cssstyledeclaration.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/domrect.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unicallbackwrapper.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/path2d.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/canvasrenderingcontext2d.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unianimationplaybackevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unianimation.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unisafeareainsets.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unipage.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitextlayout.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/iunielement.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unievent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unipageevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewservicemessageevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unicustomevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewmessageevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewloadingevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewloadevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewerrorevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/nodedata.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/pagenode.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unielement.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewelement.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewdownloadevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewcontentheightchangeevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/univideoelement.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitouchevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitextarealinechangeevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitextareafocusevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitextareablurevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitextelement.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitabselement.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitabtapevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniswipertransitionevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniswiperchangeevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniswiperanimationfinishevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unistopnestedscrollevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unistartnestedscrollevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniscrolltoupperevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniscrolltolowerevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniscrollevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unirichtextitemclickevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniresizeobserver.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniresizeevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unirefresherevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniprovider.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unipointerevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unipagescrollevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unidocument.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/asyncapiresult.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/iunierror.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unierror.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/nativeloadfontfaceoptions.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unipagebody.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uninativepage.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unipagemanager.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uninestedprescrollevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uninativeapp.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniinputkeyboardheightchangeevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniinputfocusevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniinputevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniinputconfirmevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniinputchangeevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniinputblurevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniimageloadevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniimageerrorevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniformcontrol.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniformcontrolelement.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unicustomelement.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unicanvaselement.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/sourceerror.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniaggregateerror.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/utsandroidhookproxy.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/iuninativeviewelement.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/iuniform.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/inavigationbar.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/index.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/checkboxgroupchangeevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/pickerviewchangeevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/progressactiveendevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/radiogroupchangeevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/sliderchangeevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/switchchangeevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/pickerchangeevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/pickercolumnchangeevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/uninavigatorelement.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/uniclouddbelement.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/uniformelement.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/lifecycle.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/index.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/base/index.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/env/index.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-actionsheet/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-actionsheet/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-addphonecontact/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-addphonecontact/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-arraybuffertobase64/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-arraybuffertobase64/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-authentication/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-authentication/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-barcode-scanning/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-barcode-scanning/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-base64toarraybuffer/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-base64toarraybuffer/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-chooselocation/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-chooselocation/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-choosemedia/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-choosemedia/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-clipboard/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-clipboard/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createinneraudiocontext/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createinneraudiocontext/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createintersectionobserver/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createintersectionobserver/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createrequestpermissionlistener/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createrequestpermissionlistener/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createselectorquery/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createselectorquery/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createwebviewcontext/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createwebviewcontext/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createworker/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createworker/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-dialogpage/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-dialogpage/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-event/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-event/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-exit/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-exit/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-file/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-file/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-filesystemmanager/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-filesystemmanager/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getaccessibilityinfo/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getaccessibilityinfo/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getappauthorizesetting/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getappauthorizesetting/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getappbaseinfo/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getappbaseinfo/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getbackgroundaudiomanager/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getbackgroundaudiomanager/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getdeviceinfo/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getdeviceinfo/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getelementbyid/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getelementbyid/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getenteroptionssync/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getenteroptionssync/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getlaunchoptionssync/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getlaunchoptionssync/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getlocation-tencent-uni1/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getlocation-tencent-uni1/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getnetworktype/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getnetworktype/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getperformance/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getperformance/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getprovider/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getprovider/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getsysteminfo/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getsysteminfo/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getsystemsetting/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getsystemsetting/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-installapk/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-installapk/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-interceptor/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-interceptor/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-keyboard/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-keyboard/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-loadfontface/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-loadfontface/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-location-system/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-location-system/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-location-tencent/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-location-tencent/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-location/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-location/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-makephonecall/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-makephonecall/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-media/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-media/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-modal/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-modal/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-navigationbar/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-navigationbar/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-network/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-network/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-oauth-huawei/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-oauth-huawei/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-oauth-weixin/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-oauth-weixin/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-oauth/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-oauth/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-openappauthorizesetting/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-openappauthorizesetting/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-opendocument/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-opendocument/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-pagescrollto/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-pagescrollto/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment-alipay/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment-alipay/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment-huawei/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment-huawei/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment-wxpay/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment-wxpay/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-previewimage/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-previewimage/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-privacy/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-privacy/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-prompt/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-prompt/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-pulldownrefresh/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-pulldownrefresh/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-recorder/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-recorder/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-requestmerchanttransfer/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-requestmerchanttransfer/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-route/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-route/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-rpx2px/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-rpx2px/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-scancode/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-scancode/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-screenbrightness/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-screenbrightness/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-share-weixin/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-share-weixin/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-share/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-share/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-sharewithsystem/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-sharewithsystem/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-sse/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-sse/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-storage/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-storage/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-tabbar/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-tabbar/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-theme/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-theme/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-virtualpayment/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-virtualpayment/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-websocket/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-websocket/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-ad/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-ad/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-crash/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-crash/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-facialverify/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-facialverify/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-live-player/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-live-player/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-live-pusher/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-live-pusher/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-map-tencent/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-map-tencent/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-fcm/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-fcm/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-gp/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-gp/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-hms/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-hms/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-honor/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-honor/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-mainland/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-mainland/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-meizu/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-meizu/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-oppo/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-oppo/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-vivo/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-vivo/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-xiaomi/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-xiaomi/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-secure-network/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-secure-network/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-verify/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-verify/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/lib/uni-camera/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/lib/uni-camera/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/lib/uni-canvas/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/lib/uni-canvas/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/lib/uni-video/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/lib/uni-video/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-openlocation/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-openlocation/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-compass/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-compass/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-canvas/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-canvas/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-locale/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-locale/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-accelerometer/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-accelerometer/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-memory/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-memory/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-preloadpage/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-preloadpage/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-createmediaqueryobserver/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-createmediaqueryobserver/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-__f__/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-__f__/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uni-map-tencent-map.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uni-map-tencent-global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uni-camera.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uni-camera-global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni-cloud/unicloud-db/index.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni-cloud/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni-cloud/index.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/common.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/app.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/page.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/process.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vite.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/index.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/app-android.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/widget/framelayout.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/androidx/core/content/contextcompat.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/util/concurrent/executorservice.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/util/concurrent/executors.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/imageformat.d.ts","../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/interface.uts.ts","../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/cameramanager.uts.ts","../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/index.vue.ts","../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/index.uts.ts","../../../../dist/dev/.tsc/app-android/app.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/index/index.uvue.ts","../../../../dist/dev/.tsc/app-android/main.uts.ts"],"fileInfos":[{"version":"6e80ad2ee01e6eea8837f649d0b91002724ec74cef9b3d2b5fda718b14fc6ec9","affectsGlobalScope":true},{"version":"87e0a7f9366dc80be7b72c6d0a6e23c4f68cd2b96c90edd3da8082bfdd237af9","affectsGlobalScope":true},{"version":"2c44751aff2b2161d0450df9812bb5114ba050a522e1d5fa67f66649d678fcb4","affectsGlobalScope":true},{"version":"68566331a40bef8710069a7f5ac951543c5653c1c3fa8cc3a54c95753abbcf7a","affectsGlobalScope":true},{"version":"173b34be3df2099c2da11fb3ceecf87e883bd64f5219c0ee7bc6add9bc812cde","affectsGlobalScope":true},{"version":"9c867cbb4270f3c93a0ffaa8840b3034033a95025cd4f6bf9989ecb7b7c54a4e","affectsGlobalScope":true},{"version":"6d41c5eb02906006bad04d0ba26eafc1b10c433760b9209f4dbb7af1b8231071","affectsGlobalScope":true},{"version":"7b435c510e94d33c438626dff7d8df57d20d69f6599ba461c46fc87b8c572bce","affectsGlobalScope":true},{"version":"25f08344cf6121c92864c9f22b22ab6574001771eb1d75843006938c11f7d4ab","affectsGlobalScope":true},{"version":"f955119e78143380da1b952b56ab8ca46e10776d17e0a748678729086b0fae49","affectsGlobalScope":true},{"version":"b15b894ea3a5bcdfd96e2160e10f71ea6db8563804bbaa4cdf3b86a21c7e7da0","affectsGlobalScope":true},{"version":"db491a26fb6bb04dd6c9aecbe3803dd94c1e5d3dd839ffed552ffaf4e419871a","affectsGlobalScope":true},{"version":"463cb70eebbf68046eba623ed570e54c425ea29d46d7476da84134722a6d155b","affectsGlobalScope":true},{"version":"a7cca769cf6ecd24d991ae00ac9715b012cae512f27d569513eb2e47fc8ef952","affectsGlobalScope":true},{"version":"d27811b28326ce496b3a0810a4b38d9391e929b150d9d8b881a562c9c9d666c0","affectsGlobalScope":true},{"version":"0aca09a3a690438ac20a824d8236bfdb84e4035724e77073c7f144b18339ec65","affectsGlobalScope":true},{"version":"0f844aa90d79ff631b051f5ee8540a8936d48c39914c910e89e7b7949bbac865","affectsGlobalScope":true},{"version":"0fbf8b372e8d8349a3b5a1f470bb7897272bb43aa88066e50dce25fde261cd93","affectsGlobalScope":true},{"version":"0ef38eeb51b042d85f64103ec93a37ba8683a31c22fdfd76c69852e982aa08c6","affectsGlobalScope":true},{"version":"9652d98559378167cb1f4eb57e51119e4fef5861d18c5928c6bae207b80adfe3","affectsGlobalScope":true},{"version":"7c1cfb70557e907294946a14c5eba189f77d5e9dfe7f02832ee5c6f3f34dc4d5","affectsGlobalScope":true},{"version":"baa7e3434cefa49e8965ea72a0c26fe056b2e9d978ac2bb3abd204fcd6c4fc0d","affectsGlobalScope":true},{"version":"aca5b50919b30253d6db79ecb92848d8dae72c7998df1454a19e21dd633a75b1","affectsGlobalScope":true},{"version":"016e96968aee1fb6804200c75a11e876371536a98e772cb55ffbf482ddbd8822","affectsGlobalScope":true},{"version":"4567cbd464d15226a40a5b3d671e20665aa070a2c4fa3f4682700f563f9ab730","affectsGlobalScope":true},{"version":"bfea9c54c2142652e7f2f09b7b395c57f3e7650fb2981d9f183de9eeae8a1487","affectsGlobalScope":true},{"version":"5b4344f074c83584664e93d170e99db772577f7ced22b73deaf3cfb798a76958","affectsGlobalScope":true},"db8eb85d3f5c85cc8b2b051fde29f227ec8fbe50fd53c0dc5fc7a35b0209de4a",{"version":"a40c58a6b116c6be65fa18892baa003de697e8bb588738086eeb66767086d795","affectsGlobalScope":true},{"version":"93d5d3abbc921afca6c084cfc8eff9a4ce39a2f8444f49984e5ae9242346676b","affectsGlobalScope":true},{"version":"b3c68a2799ae071e2cb60df38a22a44e2bc8875c03b58a84ca500af60e23770e","affectsGlobalScope":true},{"version":"a46622c46620d4dfe66fa8953348a4c0788b7a6773ad38fdec7af31643997eb9","affectsGlobalScope":true},{"version":"2e44c5149ca592f354a625e685feb2ba572edc16938c909d8d08670a78cce004","affectsGlobalScope":true},{"version":"8a0d41bfa6df25a73dbcf0d3a2cf3977709816dc916e7d94e6ca4c92ff405cee","affectsGlobalScope":true},{"version":"46906cc6e235f0fd29f2014f46416a3cb5328888c0f72677a44329235bdb98bf","affectsGlobalScope":true},{"version":"b5f7531cbb9bc05d7512a44929944e20f86da88059f9e91b551bcb7031233f14","affectsGlobalScope":true},{"version":"c3af388ae7dc7da32b83299506e302fb66b6471e17bc270a3a4779655710f74f","affectsGlobalScope":true},{"version":"194e09f34e64f1c9458d2a2e0281752ce194a4e67408c6eda4c171276c6a543d","affectsGlobalScope":true},{"version":"530ab35b2cef5150ec75e6c3d57c535ef7d9be55bdbc4cd24b9572d468bcb16a","affectsGlobalScope":true},"e79f3f68452f3f00ffaf4d89f79ee18b4f6c8635383b1f0a514f1a126ac37345","465c0d2284773bd856e497cd50f5ad893a4f44b739b2288b12480196ff05dcf8",{"version":"12b835d3220c33d4c7c07382634f8955fe10cc79e043fadcc7bdbc083babbaa5","affectsGlobalScope":true},"e11bab81f0ae2021975aff038d7c1a5cf6e939ca8b986976c852f282cddecc0a","9beaee2b53baa1010bad7be0a31a12728d8fb422bd1bc8c48c3359ff88ec21bf","42322f0e58664a19a751214a59372614e1aa6a2559216ebb9ed9e0a8387b00fb",{"version":"20b64aa31bc7e9652209bc4abdd4f82723b247847f8f2a92aa84a8f74db6f976","affectsGlobalScope":true},{"version":"9ab1efa7e8640d8b5efc0dd503b6458f8e9e4182fe67160a05bc124472886d20","affectsGlobalScope":true},{"version":"fb4983fc9d1824996c4c36d414ef0d4ad714c3c09aaceb6743bce45fae91dcb3","affectsGlobalScope":true},{"version":"3563038fd2b36ecea3f3de752ebb708b59ef78bb4a01a281cacc7fe346b5e345","affectsGlobalScope":true},{"version":"4ae13cbc2e3443c9de198d0fdeb784bd6ee3fc08e13c0a9dd33dee36522cfedd","affectsGlobalScope":true},"a9f049ea570ee986ad735ceba97a15d423659025fd070da3da67eeb8abf79fb2","5e94ed5f6b634fb2efe8715d7a14898244e87d97de8f30c5f1ce659325f35b63","b7cce00afe96bd61edceeda75e87001c606d6afae1269d408b762909ca550025","753ec8d1da4a289e4c8ab87eaf69ff564ccf882b9b205d748b8fee35e5c13c84","dcb4f549a765d67fd8112c49cb86835f903bbc7b3c744a0e0e6586bfcf6b797a","69bea942e5e363f5afe74ade98131ef7e6424ceb6eafa912c4fd558e95cfd13a","fe9bf6de0f7eb5bcdecbc97a9f9d143fc47ed6b2d4f4c7d626a163fb3683df38","113a30c935a90737c27e5b166753e8cd2c52cb7eb970a6bf8c7aaeb41a50f1ee","345270970a9c2a3acbb36b6e8d6929bd67a51089c1bd5ee69a6e3a7fde03a31b","c9ad66dfbb3053a5c29fccf8365eb0591f842a0238bd6acf7315c69249bd63d7","be45ce8cab2a0fbf2650402c462e99c1d7a881d4722435646ae8ba6f487ff3db","d16e1c53c406a38a3bcf4d00c3d4b563de4b314a20217289fb0e540fa693f30b","1215db238a845972b6d722503f428d9c8af6162341a437202039a397f0a3b4c1","35d891aaa6d58b6b5222cec630cb7cae1c0db8d022bd12aba90010e7fd1e0d5c","155136082237896cfaa4af7370dc01a631ac790fa0dcc2969be674f0a02de5a2","7624ff1625a5d1ebcdb3161f7f5424b21fb3af0204d3f4d35d6e27d1947ad1bc","7bb9019b6498ed08c1ebcf61148f8b793abb3cc3923b0ac3478937211830d85f","ae03093b0feedf80a44033b3103c5e3338014efa3f3e24845bf26274b56502a7","6d7cb1c3550c1cf70353db405d8cdeeeb086ee133481d491a7f18a121296da97","95a912851175159e7e4f743314fb8822cd420106bde2aedd824d46177ba99096","4818294229770bda38c78a67eacc25a54fe3a7139cef63c16dceef161eee3a1e","75c2abd02e246ceac6959a2fff8b140ed7558a53c27e1aff74a799ecfd93e78a","af4a013ff8eadb3da77fad719c7cd817990353cef3e92a71119c4bde4315ace9","6e7baf1a770b2b2511fca9d7eb9262c426571c96a19d4e906dcbd829618d8a07","3281685ed81a5f4cd84de92382261796473bbc121dfacf41fd13db4c256f83a7","75c18be6fbada64942047f2e29116c1598eea0fb259b66553cfe485a36bf98fb","2faab834c91aa96433e7a8754a557b48dfcc62f52d4c9c89c207388ad32ec70b","ffaaa31124382edc748ca1ff1aeb9e9300901546526e1356b10f166ac4f3f3ab","7e7b2aa55273a7f11e445b8f1f23c9e3d15d9aee5ace616534e8b16faf04c7b6","f4555f41566ae26a07b20098b9ab36476f7b185ca1e31204e593c34b51e3d5d2","be7cb8f67c758b1257fd0b90b9d546db908279170299f2df910c5fb05812b453","ef09a4caf8a73b19a1a5d861896499d1bc1d2b7d317af56b613fc379cdcf7f3d","a9826fdd6dfd19e91873c0c69195ebf925c652fd7096ea6a6dcb5d081037f8da","417de4e994c7f3f7c5c7710eaf664ed94347b40fdb7ef3f6a2cb5079a08da145","7f7a841a4438b02913186a76fc16143be3c3d0b9d5e596fc3b1e8b2c86b6a892","dd85cdccad106178a91b0e274bc61c704c0c2758843d29d699c028689e67552d","e2b50c5db2178aa09da186d8b60e2f589bc6998deeefba9be9df4c0686c0dca2","560f73409bc73749185b2d598923d2886dcf259b8864aa28786526164c6ae494","734a97c19cfa217eb74f1da4b933bc0318e53befff66c25043078404a0a5a3fb","f8f34d360348460782fc26f7e70cdeeb8150eaebff535b4075fb64d749142e9b","9c8b8cfe32f699471ca567ec171102bfd8a4abba5693d1837b45de1d93626910","aca17a9829f3267c504ebc02d05115616e4f0398b53e82599fd7a70662c4dd50","236f39f3abf84c47d0663a94647ca67bb92b8ab8eb1d7c0f9b15a77c20400ba3","6b41d23aa626a42b433e913b51024e310aed256d745cda2685c663ebf7a277ba","692673cea6d597777fa0b866c6d93e4cd1fbe7749a49bec3504f3d6852da382d","cd903ae80936070b05eebc6e0c461d9479ce64cf1ba537cfdc8d78b3d9a81e1d","360e08b9f7239540ba530e0f38576059fe0efaae8fcbf67f0fe5ebc169f475d3","6e66fa453a3da37ae7ae2fee12937b38d1210a0bc22a25fa70f999f8a98b8c3f","6898a15ba9329b18503a934d772f8e7d9d8d2172ed3424ea43dcee250e225cee","bc8c6cd4ce4e561453acdc3a22b6f9bfe5ba2bd4557fdef998369081c9134275","3df8d611a65ce138aebef52e24c51687ab9430e4cc9cff0c92bf52834a6c8023","5dcd61aeda70e3af3934446d645000bf91b7b6d71cf75141f9f4bd32ffbf4a1f","5948cfa7a16bb3b6694049a3d7c59566125a575beea799ebf86355888fa15f05","141027c7195a6e49d68ec954a6c850a67183117b1a48ca9e55d586abbcc286a2","ff64b99cc27e43aefdefe313778db4b98e1ec8e66bd8c9e8dd1da7a848852110","0e985df7af2d15cf2ded941415a3132f92fa1f39182c36e2541f0897578a90e0","7b1c9d68ac624e2ce9fbcef42f03df9eb5d7922b697c4eb0625bc5932c7e5626","c9cd9b2f01b474b6d1f824261274d4e2944543cba989e13ec8fb45eaf428fb99","0621f832a6db1c7e15d4b8e27efb3b6a2dfbf0061d548d20a0fa3acd6e7e9ad0","1362b7513042c64d05ef2e4073ca3ef25825e6c953c4d5455580ee50a232e083","f7a55f60dda8daa1e82458d64f4f1dd5f3113320ecdfd98a14ca95d423574207","6e62d79025167711952e5abc46fe773b83dd7fbc3432f3d60e34263ef07b8a88","a07425e97c460bd3c764ce3d857fe37fa7d1808b3ddac022d348e7bacaa58336","6ddf6dc4e11f0041c3d513c6ecbca1a62c71edf8a75606396a9937e97b0976a8","8c907668fe1c4c163e322f2c563c5f1de02ce8bedfe90335a4cf2fbf01e7ec42","2888b08f7df74672945e8913b3f8b482a519d8ead96db6413328531b98fce6a0","b0765d93e1ae41c0b9231e50ee9850a9ab30043bb9f40cc4b720c31e55dcefb2","e1a94bff81e13adc6eb802257e67f4ccc54d4268e76236dac5fdce5aef22a445","636cd0739ee78e7d5d7d7aec83243de13f3e92c6bdcdc4325756fedd4363fba3","b14f0680cf344c2ff3c2c03c9fbd5413ed76902100a8c476a04dac98113ae6ce","b00fc5ea3c8d7676d825c82783c73dc1a9b662bcea886cde8861a93ce0637902","ebb3d0ff97c54e1995f229e6dfee89d255e8b37ce50360642e3e4f4041e00850","1e995807d59118d7808da9ab62300b2b535686c1356df51ff64365ef6f255909","f63b65154c9e12d730832f8f0b0f77f1ce912bf6d6bd8296759b2a57aea933a4","37fa9c72aeca0c40378a13917e15c08f70618fc1af50db2390c54a2da5891156","f89deb8cdd5de1cc0b735108eeea49bf81af828bb893b1740afa59af0b726e1b","91d50f7a3484627280e6b3873386d1a44dcf956156d2b31ea9741c1327be23e9","a9da237d591fdcbd3db71e2c52fccfe18a203bb810aa891bfdec7f7334289174","6fc646802b257c559c61bb190cf1c39377f97c8edcfb9b4f7215f4000b16be52","52bd2529c7f409e5c239d43ea7444c394e6be64b509437c3c25fca52f3aa5144","f52a07b2ca2e4dab99459d521867b3f4c5a2032677a0c803d90c400a34c55a40","dbb522d1482ff56669c9f281491dee1ae8a75e015c5becdb348c2dcc02afddc9","2b63c811c1648b74cf6e4337c99d9e84abe4d105bc9e38d38810c358e431a023","ecf25c2f08b3a89cb878eb832a7f0ad19a7070905ae687d36bd5abfe2d6b7e7e","e11fcfb3cb83517aefe0f4713f395a0dc18f7c6aee361a0bce258c3d22a1bc00","4a83c0012226f26b3d13aec38482c66f3a605c0b20827ef19bbd8d49cee622f2","cdfff4439385638f00f16b0c50b1c0ec6452281af8e9be558432cffbce7aad22","034b7b464137cdc0c1ec97078a3d12c6a3f283d60cfa09756cef051042b79463","ecdaa87c9dcec6f7c802e5a2d3926691cf1fea4d8f8e916a93a0b410d8daf91d","4c6a9787e1b611dad138b011c9abb88395aaa9bd473cd713f2064aacdeaee396","52f648342dbae30c9a51cfb4859e0ac8cc64197351e53eb1e2a04e0315c17ff7","2922eb5995ced0c1d56d05304a32b8805b6d582d736c3168526c9011dad0233b","5f3833db4ede7a6c5955a483a01d50359c874b5a0b4ab5afe26e0232666da187","a3037d173041b7bd28ffaad2a9c10837b5d315652d1ec4da9fa3c7aa7fe59f87","23b539194ab717460588dc29b98d18318c217f4e74258b37bba04c9e07d71d1e","076bc471e07b6780a988f0d244e614e4fd5b93deeb7eb58ffb30efc270423de8","b3bca5abd1ec281a32ec6bcfd1c2975aeb9683ea3eec68bf323d8cee61afca90","edd3eb041e9fcea3765ae94f145524eeacff60b721e34ec1b9a7061276352719","c5450ecca5a8946d0ca8d2bcd8506c22c33a4af38cbffba6d03b4304a823e50d","4c6ef9fc8bf8d9038bcd22fba5b4edd22ea05a3d536ebdd5b07f720d02607a93","04f7b9e58a831b4f7f5d6bb170e87820c68ceccd86ece944c5cbb376fee8416f","db12cd264aabe686c6a027c8af3afa72486b0cf4291d5f5c8ee148325264de1c","c19c6bb7f81272ea573f2174600665cc999e8a7596fc2f9fae2daa689575f08d","95663e373c6b4ce80da0f9e21c564f4f201fed54773f9e27319ef441b547470e","e8af6903e8e7f3f405654c808534319d1105e5d05c5d5b7ab00dc05ff8c123ca","95a831ca188856a59bc544031053fda680056f0c0e2ee2722ebf614f50b7e54b","ad3683201a9dac34ae25a2c57af2dba04805cc998fe78df34facc13dc970ffb0","3052cfcfd8ccb093f64924792c7d3090490a803331969e44cab52cab4cb74698","98366b7911900d3a31c6e85c326f7ba664a28fbd24fba191faedadec01fb2c4a","4f3924ede1fa4f31f726c577e5056c407e995cf6f140d5a37b25637d512c6d2a","739779e95e30515697347572fdd439ad55442bf175aaa6763444336b258964dc","6369eadb1ef17bc4faff5eeadf6bf759986e6dcba8e412aacbc7681c5a1ffe00","9352428676f84478a26cc7b750e4a9d2abc7189b6369452067e4da2afe1d3be1","a2f25e1d6a2a69b6c88f86c6d39914c9e9a1634c9165db2cf05f9f7273b2737d","bb356f5b92a22eb4bcca50ed190e2bd94fb2fd6ccd5f0bd184ab94b10aaf8e22","fabdd71c50eaac10936f748c32779ba276c3b778fb697d5b36c18b416958bc06","55137dec811a92edfa329067ddcfb042673ffdcbad49dae12c61cf9ff2410822","96f21e74ddcc1a72f611bb90f4146bff4bfa61a0ce5d32dc10592f9bca6d9dd4","b7ef1d83bdc824781f07b5347176f154c98190874c5f5ba2c0797225ad370b2c","0e7a4c6bc6f826aa0032971691aeef1d4d6c8bd17529652f4f764749e33b2167","c702feb8c88742697dd03848be3381f849776cea383497cfe9c72075ba6996fc","890729ef6b2e352d1750186bb3cb740f4d450d4f5d58e80c988ef79c596b4db8","caf48a1f9ca7807e639635d357c615d61be9260f3b3c15fd3b32c9a136b95330","7def810f306678f7f8c1305a372c6e8d4ecf984f0cb067dc8fd422dfab2bd6ee","7accc5c71c146538a30125e240e7be8cfc29a9e263f4540b14c55db4af3fc4c0","04e345066cc36c58551825d6e84cd23db6e78607ab1ccda754c6bae66e0b0fc4","172c9efb0cff276f9cb01dfa2ac5b7b6d5fe3a547e264fa2a15187d7dd9d6c93","8d9202dcdfb70d6335082e1af748cc1e8b3ab4ea42fa9d34403233b8a2693cf8","f4600cc019ff4c47e17213c7d2ec5c831db0a9379d7376fa2fae3af29c9c82b7","b7dd7c73cc8c564f0bdd5217f56cf42fde85c7524b06739e76f08265a3e8a1ec","2fc96755c9ce9f4f3d6a4f7406b8abdd0651c7548296e060908c4b75b7bc42da","c94c469279059c008ff138b5b091085b1f4326824abe8265140fb26021e294ac","f2f23a8040a3b977f2adc72622b49145f1605300d5b279c4debbff8d535c469a","41d81600effb129c209f86ae32231ddc357d7acedb9fa9ebfe60c308475d1b36","67368e74c92373e743f2942eaffd292cdd6f91d3a4d4210649de88e886f727f5","2e3ca531dc7f889d2525b5548bf18b0ecb5b2b1ace8c89e5644b5a84ed80df0f","13cde4d1ad843f50fa82156e498420f3d6231eeddbd9c856f2fbc947cee14f69","7ee62691b05718e30a74db92d9295084ab8d9dd0764754995545b672017694a9","7c89dee0144087f836d6b9452ba29aa4967317ffca1be148988eb81b5a357992","616e4dc1950431f1786d66b11b6e6f18565814d3098faa8785bf2fb71d7d97f4","fa065dd51bd483dc403955d383e587f65cd99070cad7b1e638d24fb084df9879","defa4a8e6bee828a1c2dcb37f58597411f5299557e37efef2136fd6a042a0ecd","7e5a27c15c04faa14436677396f5075f2acb6b0aa33670543ba5d75251ec3be0","0b5823a49cbcd5576d7fa7f439441ced3386eb630279cb7a3bb30246cb2519aa","7d964df58d57fb44484522e32f2e99d0fc6bdd929bec44ad5a051cce31703737","dd0b587ad7c873cce8d7e51b947a8c1b722e00881b0b485af46f9f4e9dfc9fb2","f72781d005c256a6d64fe522eadb2c2a2b920c91e395dd2837b4193ec6a32b6d","827c3bc97611a0334d90bb429cd61547e1479349cf904428fede5ba28bd02ca0","9c865c53cf594f71256e90f1e7777688088e05f7040702c0af1b31b2a17979c8","ad149f89d84abf476903e0a70593bf8a9a9870f3363f03e48bce03a60b9032cb","42c0632af4a7291567b196d0653c7e47ed807968bcd9330e14cca8fd5137411f","cf92f44b3a567bd9842fb31ea8f3fa8d71389a703e83b0104ca057a9c7c401b5","ec9f73c33592a97de39ce97779da9c1d9a3a81416f60024cf3a094d8bc6a51f0","59899090f0e604d38520297678161172eb0da2e276d50b734782ac74bf710b64","a4261d849c4c4834f22b6c33fb05fca37078eee9a4dc6fa00c90f2cc0ddadafe","33f8235ee036526ba4f6281be5a9675977efec915fa370ea9823be3b743493b4","92106a20ad252996f5de30ac709a31f7e968eb0e3faf02d439bfc19736358abd","d3418282d5ac5cf21a0c186d4ce7958c5a8b8e35d69d79225eee9561bd5e941b","deadf795497e8a65e573447e50e36a3b30f7e6cf70c02b4235c7aad21624f9cf","bcfe531c8d0cd3b6c3b24e398f78f7b51a3c4d44c75225fa8f8bf4fe30fb6ec2","b451a4d6f6ecc0523e2bd43e2297c68d63647a330a7c893a3a356dc90c0b7e35","5ac5bd94c6929192ff715f8c15543a2b7331f0db6f8b9a5680956339c4ac5841","0ee0e380e1d17c3e6183b70c012b18166bf6ef593923f2b4083d99697fd61d5e","11f2b58acfd6affaa3ff00799fe3744768c073ccf63320634067988309b86b27","055c94ddb36bb93d5bd06af77e403511ebe8952802934ea2c9af6effa2859a11","795418f74f7d511631329ef4a917d7e065c7f7b8f261eb6576e5e1b364fcaf93","f07aa0f14b07105c64bebcb9e792216b85e21dba5ad5fc7d69dafc990998c9ab","3590279ae9cb56082358ac736c650e2500d3e354aacc4ad0d46da2bb9c074b70","d14cb41bef07c4b766260e33f77affc25c326bab71a29b38de49c736bef814c1","9784caa1704ad93d707a343016dce9afc51e3d4bc473c44afaa5ef73bf02ec67","f9da916dde53443d9ff83edfa1b404fd468280839379215c45b98748ad36413f","89e00a80153e04f55fc2abf67a5fa26e843e94e4d896eb906ac131113e623dcb","695d60af09f1ea0abfbaac6029a847d5acd974031ffa92bb30a5046412141366","e5fb35e195ee33c761e1dfe073436e30c7f38d72cd4739dd2deca834cb2040bf","00a0288ce31d3e3129fc177a60c130cd792f2ecfd6e634c4cf9ef38b075d7e5b","db2d09f8715a7f099f32904cc44ca3259bc0d6c9f8afb539f0e94082c3421b32","d005bd50e8eb8fb8b93c2f9c1c6ccb1445d21fb55e02ecf2782fbc921f4e3066","99b4c7f34a053d3bea56a63a20077ec8ae250cafe28730428dd18f8bb01e8ae7","2a3b6a931d2bcd2998c06cebc2d86ac66300a65fac01f9fd1a5ca39746921148","18e2f9802d6f93be156bdc2c771ade01af119f6735ddc52611dd47c00da6de74","60c6f70be8a7438ebf45665d8edbd06b2d6f12e57374d5d3dc2f5117f3e56359","9fdd23e11fd5b1dca494cc919f706f502804acef50cee593723ed4087e486f7e","784d7599403cb4e6595c528758daefd24ec8d6867ba668dfc524deb04ffbc1a7","e254021ff17cd2dffd5ba54458cfa43a07520db1b679dd74a54bfec16c198eed","31d3d8d7c90229e478767cf35dfaa0d63fa453f03d11a3c9ea0bcf49a000852e","a811babe4e7849025cb2c111317d96da26b0c2c0bcd9a5a6baa5c0244ecc2c4b","5dcb774809733fd4c12d74e54e4604d6462668f0ff9f89e610d3c8ed7daade4b","6dfb57cbb5123326dd2591fdd29cf2a6edfbd50473f84ba56b41dc1a9a5c9335","2c4c16ae9d3ee7cbfd81aa78318dd44aab3e89f104ea5b83db823c62e8035958","452faa95475c0a3d13b75d2a16e3400f7689c66210f41160bdd7cea51f58269e","2a58ae82f98a35406aa0aaf823ceab9788bfb5f8f634df0f81e33f052cc9a070","c4bbb6c48e58b754e445b06107d128d1827917dd3ff142ee91842b9a9c112384","219683614118701da9fd97320073c9ba09a038636e85a9020572e5604028dbae","e02e548bcf8cdbfaad3014721c0afc4d9155864326e3ea996526e20e6a2afd4d","870fdd3a3eba1f8ce6d5a9f0a26ee479aefa7021f907bd7113c2742d4270a4dc","04f86e5474108337feddc60f974803afbfc9ec42d62ba329edc96c90c730020b","4fe88323f71b0c362f2a0bd9134ab39f3631259df044ed828110508864832c33","0598cf1cb02c868f6c3f00f66f5eed0c5f3224fde091e5caf586a32f2d54a256","a7ebf86af52748a4e9be5ae5659227d9c9f32e66938bf8f01e98c3fb3315d3d1","ee844259ed172b447221233f5f5858f3f9c14740d5b62cddf1462ef2a6e1272d","142e686aafed13c5d48f79c62cfc000896a2a57bd6eb900c2d7c33428df54c1d","744ecf788f2bcbc504d2854a287256f45df04c3c7e8ebe6997310f5d61b50711","f0e88b50b239c95a138b1e484eb51f502dd62f8573556e8a2389b5fd30133ada","651c9cd467ee2d3a75fbcbfdc9ce0663d8a7918b00051f9e8caf2c29c97f1dce","1755b7e2ac5ff0c983ed2af446b6e2be02aab92cec69b529d5bacad737c92ba5","75372fc69641935f9001968fd8a738f17427a92236783d830d9a1658c317c9bc","79857c3eddd652e3bf563ee8a8ac42f77602b493241f5d4ecf321deb07d3265c","493374b8fed9e916f65268ae34b2eb50d54dac6c6155c8c3aec2b110b96eb846","3f67bfe77198b02a087dd8696dd7cfb815e14d53beb18dec7775aee1d58702c7","ccc5205e0d157e66fda814ca588dee8c132fe54018d0d82661cef3cb6a61dea7","700797233325d51580854ed460164d5fef06c5c6479154336ed7fb4573c22faf","63b6ea7963794e1a1cbf29a4b9e6e5a18a16bc0acf12c4c497b13b8189291577","c940f837169ec3a8fab6fbfb8982c102be8568226547083fcaa7120cfaaa8cfa","e7c3a4ba9d905fd2c0e8c9fa1a7cc8d60e34de72c4fba3f485f1ae6f28d30e49","1c2e47b8eb25bf91b26b6d41e7dffb80d763866bac7cce5521a7a776a5219d7b","7b6c20a8df3cd20f3c7897bd4e7d14a3470bcf698aeece02039fa55977c6cd6c","3f13e83bc86dd062b425976807aed2f63743f517d1507e74c14ac1bb4e6af2f5","e7a3f8116acb64d02bb91ec7c607e4f605b80db625a6b81b2d86347be7872caf","51633fe4f49dbc57954c0c606e445e4f091b7af3420d80884accebc2116e3382","d6f2f3c749d1adf9b6d572d27c27eb0de6c97b07032c48e3f70837139e9180a3","170b85f7259689ce23bc809d7cea2a7fc79b7f4e524fd73930e66783b656c330","479da7ed69ee5914191bd855aa74fc34406c4c3864149a528b0cc76037250e59","8766424888a810870e4be559a7276449184edcae82db64731448db12049800ab","3019a26416cfecfa581ed6835e94ca21b0702114056dce8836e3a1226d732640","f0eadd8d5b164b19483b7c62e85a2249611b9dee897c7f1b46e109cce13b22cb","5f476be61ef4a259f7067891c04795ddadf1fe8450671cda83e27636ef2ad0c4","5be2d74a8b503f4ba88f905316a3704f28074cf30b884ff423ecf60a7d9fd4e2","d6f8636d479116a1cef3c6e6415d5326e5bacc5d0bbc361bbd507cdd451b1594","692ddfb913a98bcaf42cb94473d0d4a45683addbf48f3a1d5c5869073e09ed41","3d51204c5e6a69cb45ea152c968eb5a26db0ca7d06d73889dfb012edbcafda48","bdb19d108c2a788c48040cebb03d4bad79731996ca9765e7b292492d59e8f31f","734cfc086d6f945e9a84aadb7a2cb73214a9a86df7d0853409e36ad0ada006e7","c2d9d2be0c62d9eb038421e2a51be0f098f8da42472080649945506d9f8b2d64","38d5dea40c2e2423eff59924eca48e669ed88441815187bac4262ef0ad2689f0","688db86acd5f0d3a167a0bb4778bdecba769f2d94c8f2291277f0b51e7cbfcd1","1c2d49d8d8d90cdf734a7eaeac76e05829437eb657caa9e9403b56701a00b747","9c37c1dafbbfa00089e3ba095269dfcce8196e7cf2e7866124a577bed39b1341","25b2e683398aab0e633bfd679093be0e781f8259f3a7212c74090eabef71829a","870a3b40f227aca3021236bf178d76508583497a04ccde082db4735cfbdc413e","4206886663e1df92db9fd3286566a7b40d08c754109815aa1c5348469156b454","546275842f9a117e664c71aa151099b612126abf5002b7ea9a7d29db3f7ea06e","5d3e9c802093fd0f3621ad32231fdb40951d750679921c24be00207580515fdd","b638e2349147b410c99c7abb3b916484c84f931c0e54a51610eac23674f5462c","991acf2b656113675182be59c7bedb01f42132c7777d49ab56a20f7fd0eb0c53","c06c2a0bdf10e96019121c1ad43550e1309cbdcfb618fdfd5f5007c464b35869","dc67651920a1617964151323c9c0fc22962948131fccb442e3858deb974f0c0a","4dded26d1610b1fcd97be8bc2adbe9bf49cd6c574bb54f544a706ead913ce579","81b3af7d7e8df93862b5c308efb013845eb80b34c5bddb6bcf97269ac881b454","dfb5b0e704f05aa091ad57629da2964d4b4ebb92de88830e59641df028742982","ccabbc8d7cb2972fa82cfab2f68118ff53236e3f73a98dc20f77c0ceaa1c2323","b92d5c9cccabb04f74d0329058e29e4edf43ec80a427a9553e3dc006887260b3","310519588275401653a9e2524530076c0615619f4ed02a90f4c295256145ffdb","c654364580b1b5192b100687f5337a6cd364c49fa4d435a1de2088ba5aedc687","3a66a49f53f67807ef110033829b67d0ffe29032ba9b9c2d05a78cde639c7fe9","4a36f2312ade82cfc32f31fbf131cfcd29038f5f88dfb663d5faebf0c39bbb8c","c05e29c903823a814853aa0803301724bcee784eb332e63a673efc556283bbe6","71933894b1cb6b21be3e94316e86a3fac2492c2bc08944ae9611b85387f2b0fd","e5a70a8f848f1e7665865e76872cae69906a3976b61efa1580f8a9229d012e03","5fb73749ab8047b48d360937332fe28dc50e085a431f7327a6b5d530071bd06a","218ab8481329fd2accca1e5debb45dac5eeba96b39bba5f659009539f138cbd0","0930323b4efbec69877906806bd2a069c96896d35b5fe879eccf64059bdd0702","c0f9aa7e3e64a5097534bdb379b91e9c6838033cc1406805b06eb4f2bcb8adb1","e33f32c896ea534b5587a1166b769f1259a0d3bcf021fea449c03775e4ce5bb7","10c91f6a781c0068e7e3ac9435a38342e34965dd3cc7111a824e5c7d6a0106c0","5ae29d8bd0fbab2cea691b9541833b76c9a542013ad33710a109ff7f0751ae71","7b4ddfc74242c161aa469a8c1ba0d01915779a87a85e1476febe79111b52c5ff","d712fb0b184c4dd377292dc9767530e9249d73a04690dfca42c350cd4a02338b","72028dca7892e4d0175a4ed026701d73b5a5e8ad5c3771dfbe1138f1488a03be","ed145ad7bd6050dacd85f1c7e50fcd5aafa0433339dc2630a37bfc930d8589df","c063c430d8f55f4d7e4bb7ebf91fd7bd50e8d37f3406d356ecfa6c909350db29","9cba5e78db08657ac090c65d42534dba1592010544541b7810b35855570eaea5","abbfbef2b303ba2de958b6b872319bf3d4fc2d931da921efa09b092a91e3aa6b","e3bfc18a8b10bf2d1495eb4b3d4dbce361348fd743a785956d5aa868e62532de","b2656290b994b55e6cafe2640efdac100c004adec35498d4f470489a45a01862","6eab49aeb5385eedddd1c559a0fb5c09c8a18ee4c675ea1c9ccc061f7bc42851","e2acf71e1a4fc7f7a90e01d9c9c2c8e68dc42fb64a6e7276287bdc7ddea84214","d7eee876214292d6d5b868bdc75382459d63ee4ce8ddafdfe881efab51b5ef68","ab032d928152e2db5be177587327d54c90eb7c117f511db93430329ca0f377b8","f098324307a2ff30be1a9f32e72e3aaba90da04fd1e9f049c0769b079b6103fe","6049f94460f61904ef21883ba8e33ccb44b375beb0ab34061727f00a81aa4d8c","50de79e82b5c05faca1a582c3d607327af5ada600c6c04fd7e316d2f45e3d8a8","f01a152654a9a507506c715e69ee756fb7655868e592b39876129747346b37ee","9bffe80260c554aa2cbf095500c995460101af6eaf73c73a0e9a5fd010cb13ea","053dbae8c05eacde27db36ec5579374b5ae43908a0785232dd64a119f67e8312","f3b1803e1d654a91dc2f717a6303deda942fccaee3b214da79036ddedbc00aba","9841b6295555dd6eabc901bb6d3c1cd5c5bc54b98cb42fc51843495b5c30d0dc","bc0d319e41b6e74bad9b40e300ef0f5ace1c35b0e05735734e00a9a1b4529386","bebeb2d6b9908b8436e7287b8ac1181c64413f67ba95f75ded3394ac32e773f4","c8ea876fd7003a81023eed439b17a43102e6ed1098784770cf75c97141122aef","0f8e5ea2ae53ebd5cc361b68dd769c7ebab313df09ab3f3bada1057e8912718a","31776bf779655f6c80dbe834cb41c3fc3a5679813d009d54edbaa566aadc4449","37dd9cda7e4c1c3efad74cdc1305fe1b70a54fb25c1e960fcff5c1f95b857b2f","b027177cf9d90394842e000df982b32d996992a3270c48236b254ffa8862dc00","81800937cbae367db7745647bcbd75c38ae4e4114aed57ba00e14143a2771592","df3147e3f4c3f381fdc44804eeea2557af08f2ff5f05dd2f7e251b35d5974083","5c30fc9007e35a95a06d1b692099f6efc9bc1bb96a1d5a5d6bca96536c5b0d00","64c5f1364683f030776a3163d566cb2efd2069aae22c6e9d2b7e26ea1099d4ab","14fa28f24d61bda6cbdf507f9e8e1943995c4e5636f81e13125f3cbc7ac8d92f","c26f1d3fdb8f7fdf406eacd8b9dcb10db9fe3cc7e1e6a9eb34c5fd3d337efbda","4801ce5e0e889617c01743d837dea896b4665cfbae623a87a2397fab26f659fb","b833095a6a099770438573a7d76b9f914594012e547be2c556d1e1d3250b75a8","4e8e990f4db7856337b3d1653c79bc0516d3c8f354e7a6e8402d9dbbd7144e65","1fa883af678154c29e9bd700aca19b34652535836d9bf7a0b460b13eeb735b87","cc575e3fd7b401d7174141a186554fbb02dc4b8d331fedfa7b3100daa3b80ede","0e4a0b82e38b8363eed4d6a077911b99ca2e3cf1783b13429759286a390912e0","723b00629de441eafab07568c93668685b149345c2b05ad708a8a6454ec631da","b4323a664b69955890c49f0cc6085ed5e72694cdbfc41324ad2cffea4f638fb8","4b379fededb05ff467e513c3cf72bbf020eec7af35e6469e3254d5bc64d3a1a4","f04e225f4d8e584b1c831c637c4fe7bd87a883d6a497e69714a7a28e847ce3cd","2ded5138347ab78bdf2c26620590d02ebd17c27e1e066f288a36d945fcabed42","c0d39cde2ba477c45a0e9e2a9ec06105efa556a334e9a602fd1785416060d6be","78ec7867d878c548b5c7ed2666c6d53f47dfc69d0096808b9d7f51802566aaca","e6aa21fd5acdb192f250cdd88234ee6a7cf5cc9305da17154e61557444c61446","c08f744bbd44f2680fd88eb1639958049ba6474310e9bfcbf00b2b2d42189bdf","0d6054a6bc3a72dd52b8a7794a3fd190eb2158f87d2aa6b6988ad6f8068b89ed","8e352c0efe439c8168c631188927adfc249c92b71f016cd6e7ade1cc6f63e6c8","2e2de1897f5a1f98a8307938953ad1987b1457b140c0263b19de30763479c55a","f7f6f8cb688ee877fb46ac3f42b60eda69130cef419017e6ed88d6a2bf381647","ec46a2c7b6e2ac832c937a649b13ded708d1cc7a067ad64cb938dd1f441c993b","b2fd56f80464f3d91a0e73f5b644196e28b6dc1d1c9836a1ccf1db5d80f6a0ad","d352e51bbc82a60de52ac06a88644b2e73f2cb04ef4a7d93b7dbe365068dd4af","e3f2b9e7514ca65ac5ce5373be59f3322292182e02e36a6685f9cfd58b28de6c","13eb27b0a813189a3d0abf455f248b7357e378501a961979027bab62ce5ecfce","8839cd37fe3f2042169adecaf9e66f71ea4c1903423ef49b75db6e11c9bca531","1c4f801fa938dfff8ba0283c2bdedab2045f215369450d3fe6cefd10cf5a0755","798423eb5bfb9145647edc8ed7a0767d02bb4c85c6b00adf4db9cc3ac51d0d62","44ced48a3e22e8949f6bfbc99b780b6ec3f0f3235c0f57fd4c257171eab4dd84","878f780ef3f0f209808122ea1c7ff44748275b4cfba75ea40804e530c2f1abb2","e9b071d1470820ce48e6bc84e3ab4564a33ffa118451f693ddbd48932af9356b","a507de4adadb7e8cfde49db789c062c168907843b49d081fea1b79bcbd59dcf4","4a9c2514a2e2861e25ec956f4da6058e15dfad6a9238f91bf0c3abb8bf7bb57f","d4430a6173c7dca84d93735e97419ba6c5dc52ef09c880e860fe8084cd52986e","b4a8d42bc830833c7480258c34529d74f38940ae87675365f8233136a66d812d","61b1e746198b9347a1ad402da267fd4564d54322c7186a3945692cb32c59aaab","13b3e17dbdea4c62fa4b927b1d06ae4fdc2b35beb05ac20af9e6e706309f80e8","09897651e677150ac1d89f9978c6b51af312ef76de686148adaf8ea3de68ff2e","dd0c1145cb0c0810c14087524546684c8ba0cc57db8e8c9e2408c649d76c7b23","2f58b3aee27f7398c1a383fa7e7727654f03e03e172bff82639f0bb3e10ec6ae","de584fb280277e63c00cd5fa2c3f0bcfb73e1e21bc649c0530acba7f63f78de5","ce3f7939c0317c703adcc465382181b0ca8f81dfaeceaf23d546ca600f8ce5b5","f7d66ad8b8c2dc1afd84528f04feb85d18f4f98f1d18ec9d4eace61a546f102e","05501b15cfea24b2771b49cd0b22f2798bbcf234485d74981a786f7e5a1748fc","34424207792bae5c0a7a0ab55a3ce23c02ce8821ac776cee8d428c0a7bfd594e","0cabe23306fa31422636ba594ed34bb4a88e7ab11d301df5284faa0544c3a1c5","27ded2aca35542a4a09f8d3a693b067b5065fa947ab2160e60e38995f85155dc","87451be2caf8e2ff68bb1a0e717833eade17e51722f794ddaa9a12d1712d2e7f","1e103dc7088b204e29d4cbd6f06fdb04457a20222cb38edb9679398683d962d4","ce4372e2cd71e7b0046866206c79f017289aef907f25aca105e0bb2a47e4af58","ba7c5abb7a4aafde4cb9f6c6d0d8f40104bb95eea930c67d2e8b9b706c7621d5","553a8a343dc91dc8eac6972338c04f1a25f74c0cf8625460a78807a5f0a4ab44","f751a293408dad0e5db2dce0e145933c247809120686202390d08c4fd34190f6","02bf8212d26ce921fff01ba650cf10e7e8798a09e458e5ff978d87e035b31b14","ca48c69113aea0263d4c53655691a3ac013a94d7eaf1b40addcf0a2deaae37b5","a5d9a1a3e10a466aa66db4c27e52ed9f6356ca04ac5dc1150144519e4ed10d44","4b8e1cecf784a46d18c18c1f2a3635de2c694082946a3b25d9f70063d5d6e0b5","d295ea463f494f86669136ff6c28591c8db2616e5b1ad79f03d9f42212758cb6","09dae15420c131bc6a3ddd8ecdd5be7896fa62ff759e942731ac2ea32e762b34","4db477d4d7ed492862b36c76963ed59b34faffbdb81487b1596c60695d473341","842fdad56070483dfe030511b9be1743a4e1025c544f02c8524b9b2eae7b9576","3db908a469aef5106e9d2568a3a25cc4f3b0f20343525154f424fb7923495abd","a04aeba6a1323e8613f33cb75ad532dacfb47703ef16a2b19132866a38bacfe7","4f14982a91c67b93709de2d2b0acbcc9d96be3e35bb9c3e7254d9d5b4102e748","f911d7e57a38a3d36650257d850b74d07ac66996cc2395aa10e3b9e7fd0436c6","c16bb5cbf34f654b82757e42bb4e26d059220e70de3cecd5efcae7991f57eab5","388f0bae73dfdf424ce68b7cefd94bcf240d5069e287f9aa44ecc4c6158d07d9","30db41256ca755e46170d77d15d3a816573b2172cc2428a0f3d69f2086d1c012","1bd268ad8d4a33a2ff0ec102582851f69ef4425eb5c6817f2b3ebe4e1121fd26","9be9fa2ad677df2fb29f846d1e8a48786a339c45dce3c37aeb99af2fce4a1915","8e817cae6465c48cc7a34bdff73f723df7fb3ab612c82e9e4f310fcd419e8646","63b0adfc785281458279e5856cd200f1ce8fadc19a8d67b7687cce0fdf4ad51f","736042a11a451d682b2ee38cc334f70cd9985b5352004fd59c37d34026249945","afc2aa98e9958a720c80006acbad97d2ff65c29367e1f36611c489a1ee118b22","876f964e4f16edabd41027e4abaa3f8a6aeda0ce19c7d4e67a194557b54b6fab","38eef06fe69bbb915f536282ff7c292c04639e3d576d58a49d1e90ef527196a2","11d332d87547781f488740c22a66e9b9e4082f959048a00f02d582ddc4f12860","5869a53a27e1f7fa879fb805a30f101671bff660f669ae17217667c846f0d149","0b7d45d2bb8b3447b31c358e3f3550e0314f75fc76f67d4e5f3c4c84c8749ef3","221fd528946354d830e771ed9d4f7c6bbc5b532a4e1fbe8051ae2666d0847c1f","7f045b82df5f431f837390c22a2c35658959713bd12599806257727cbcdcbf1c","a019dfd1c3dd9c05e92099f9e544a0e63a08df0039b061ea842995837080d080","9e52d6fc2217c394a41eec5ca3fa42190bd9be1a2cf863f7e065a13ad581015b","d84acd47fce20eb719b2375094e2bd222fb8eb50a876cc72753625e98777c859","d262815cc9e0bc51a685aa8ec6f56c9a7a7bf5ac024208a9728a0987ad8bfe0e","13261e6804d7e8070708d36ea504aaf37e1d46c89776d607e94541c110e7a3d6","debe6ab96531c19b627feae9b975a132a4cdeaad58188f34550f7821942cdb1c","a9dbc621de1b4661d1beeb586ea7c415d485d04022ad44bdfe00e41124d22c41","70c0c12691b22f5c7c4c09bb574887bfc77142fe9fcf6b1affc088bdb1fc480f","f7a4d387ad7fc9dca7a2197dbe5d7e5435a9c051589d4cf55930f271131e6817","06aa6da5d72e34291e11e03a994be8e4fd2d6da908cafc160c8f8b3111a3bfe4","84a7c5a51285da53bc0e548850adbe4c4a48e2c79d142f420e70c724cda08abb","02f942620720d49d6b84b7b58514fa87a905eeca44e57a281813726548c8e709","aec5846e3da757ec64a2f1cd2d00a9abb16016c4731be01d0f22f9a0095b3ce0","7a8c4ebdbc2a4b8fa750a434907f65c1ef172d0a8ce06796b987ed661015782d","a4b7d3fa206dd9ba8be67de430764a665947082b07f029672a440d2f0dfcdc35","fc62ec250788c4b03d7af3a3c1d0499eebfbe38867dfbb4b738d51f33578a2d7","5829a3088359b8d6af30e786c0d3e28ee9e15e23281bb4fb8d07513a2bbd98fd","bf338a71abf1293386086a8f6b3a57e3dcc76f7d63ecd808eba7ea00d5edd286","08bcc1f8fee417f45a074cf822d1d0848d37bd8f52dbbe336e2e5619aca50647","ccab2caf5c037e1d4522246c0a87675a7aeb1aa9fc23bee76b1dc135bba2104b","a607147d53272b43503684a14891610ff15197d85eb39feb386d0dc66e991acb","0f3d70da43d7579832b931a9675c86156be54dbd467f47bfeaa5e591d349c768","9268108f1f2def6b335388a4f34bd184cd8b4854e0a54ab85de565f55f81be12","19bc8e14e1ffae7a8147662b9b1eeac79c4037c8447651b182e6a6dfda63bf7f","921938780b87d72d17a00fc61f80516c723a4daa73015d2949ef420e085a918a","9874e153efdf24175131ff8e678db6956525f75a6d95168398ace5e25655225d","69df59c5d86d78e387eac890b5f8c7ab7b5b68962cd7ff5b77e1fe97b6342f04","a2fcb274aa68c2237edb520cd3a54bff2203f237fa2bd8326d8620c35a0e8bee","d83263a1abb74bfed4c2748a8e181e97e710d532104f5ba8a6458be5c9ded464","6ed8b3b00b53a43db74041c6d3637f8eea508a324419d5d745f9335dd218d568","bfd7174d5a4de03ce64db5ba26fee050efa0c43d906452c0e3c5f750dc8c6998","423268a14f8cd112c3746ec5528f2a425adec9f0abc45e525aae9d54b378762d","f88e5b1376d2eccf8399f8005d921ea1b13f049bcecdc31b3752311950f03c42","cb47de952fc15ce96880d0c30e10a72073022bec8307b1230c2f303cd6622239","c879b7a8573bfe6f75e7fd29445af276bca450ce56e7b48172f88efaa442cf40","4a99a48d6990223a6eeb811c17ef17204febc6d4fba394f286c5aea21caf43eb","82a86282f0a951afab5b509da77fba3006e986a075bd64d1d06db26fd635f220","4b3c32870abd10e454744a4bee8475ce654991ce4aa9287928a17491aa38a6a2","9bceb2c3a158f54b2398841d02f7a7a31df940cb90322b43bd211fb2020b145d","7d3287e8968cbd4fb1047dbfa61e8d5539c0cdbbc5f5802cf6ee1f11708930b2","636c9f06df5f7ecc1847a98d2963a09e9460f4552dc8c203f447af8ff7d060ec","b014d7af72076a3bfd5d9a710623ae6ecbb55b4c069bcc23c41cc219c57b14ca","a64ec866138d2dae51ef6b94bf2b352d2acb383aedcf5976dc36389e27b0aa3a","882cc90ef2a309b77a60dcce6cab81328499bb47587dce292b38d3519c6c8394","02e3010879d3018585a9ff2e963af8e3f5caca993c532c2220eeb1b45a11cfe9","d0c23cc4f54db1bb6bf7dde080c56c7a2abc3310518cdf8e884b4904ab1bf5b4","c159d276c7a7debf45d949ad448d6dc93445a926cd8eb76d48aceb7773d344ef","ffbebd238e0dbeb7da6a4478e7a0ce4bbda5f789e134fe49b4fd1e6d18d3ab7e","5289392088136105e55d7c489d2280c4583f8f7281b77eed3746b2609eddcd5a","33be7a3da4878aeb17da49c0bf374b8c0a8e7926a23cfea292316a7a2ccda4a6","5bd637837ef59a145b3c4912a23bbced04fc22a756e9d6f60cdb9d15be9d9c1d","cfd0d1e4d035baf9efb522a57dd49de10c257dca36353792bcbf055e29c8bc47","99597e0fdde015c3a4b83d9c4fd34b9709fb1b3f598cc3a7dbe34dbd8c7ca96d","02860d062cbee8d613ee767bc3dd07a71ef7e2017effc0a4dc305b1e41f9cbf2","bd73aaccea2ab75aa47e87a5f5e43abaebbf72ed00d9339f093298e3129c9b3f","a4534dbe0bd2abe2eb7527ae1fd990e8e404163f48fe675b794debbe7c63c461","9f33ad4e5d5a6bfb1a126a78462447c3a8993d6ba5b97695a5549662db39b733","2250c0bb781af780c38e7e7b0b5a96a7c9d06c8cf0221b4b1847cbf5ff7a463c","52beb91f2335f3e62766682cf73c0edd070d729ca17e7949f04d7ec8e7408f05","f09e1c1ab3686f4eb0dfdf036ddc6871b74df080fc69f24cecb2cc8d3973e147","b4c7966b8c8f647f1c2adfcb93cac25880260fca8ededd33d2e648a6f4a09fe0","e67709ede217673ecf53c24436c1675df7e738c2d43570973d7b18bb2ecfdece","8ef4432db0d8380322d4ea1cb49cfc0be1257dd1ef102f653a8ce5ab6ea1b4e2","4b7d8d8c756bdd8ffda46d2522a4b8e28660e90d8fd375b2e534d33fcefd18fe","c8b19b7a6357ddfce5f2e75a5c4e8abeb752f595b96a1034a4ae053965d6c4bb","fc702e18a35f9968c62a516510157e056e1fc6340483844e9dd79e1c8c5b373d","cfdae246948113b1114fc6803a33060fac4b5dd22f047ec5969d5685fa952bab","9dedb414c09e12a98163b346878d8c57b3df0ec44662cf47638e385b65a8b279","e3050b97a2b2370c6555e17d5c5c23720ff6d5cf8811c64064cca99ae1e88323","27d5bdd0dd73211f69b539a64d3e7564f4b8bc9df431e44477fdff71e4724979","af92248075f2070f44f9817120e7a1b7ca621d66bed2a69a69715d147cf125b2","bc5cdc8597ba4548b91cdd2ddddd996f5441acf76192fae49ad78dd91d162d9f","8b157465e164c37d7f50b032657029a9440027bacb63e0a0422c5903e9009555","90823973681cd3bf25e61792de6d4867a506d0b1c0cc1be63d3417e3e2c817ca","3a57cdf3165e34e394a9510116433248ce234cbac86115e4cc3f61205db4d1ed","5ba05a9e9155e96bc4b9aeaf3ed99bde4284adfcbaf666152eebd596a2d5cbad","25120cc5b77f87056bb13b0c01a05168d6485323d5972feca20cea124a4f618f",{"version":"397fe1ca4ecca584df1b191b80066313ba83e2120c8c6662511d1ae61c28a7eb","affectsGlobalScope":true},{"version":"fd45f5d7408b4ade5b812478e612b59801d371e4b8e467cf1b1aca46acd1564a","affectsGlobalScope":true},{"version":"b9241ecb5024beeaeb98fb558000dbc55e650576e572d194508f52807af6bcba","affectsGlobalScope":true},"3039ca5b4c980b09439c8b8962ea05552573fd995304d31957d47e01a6bca5ab","2e5ac0dd461b94010e16057c26d281841e3a935df927d76123b6864880086a26","b911176e7778c30f6549f86daae0353c53730eb0ee59b6476f1072cb51ab1af3","f8cc7ac396a3ea99a6959ddbaf883388260e035721216e5971af17db61f11f0b","895bedc6daf4f0da611480f24f65df818ea9e01404e4bf5927043dbf4eeed4d1","ea4facc7918e50e285a4419f7bc7ffdf978385899a3cf19ef7d7b782b896616d","8db893a4613484d4036337ffea6a5b675624518ad34597a8df255379802001ab","5828081db18ff2832ce9c56cc87f192bcc4df6378a03318775a40a775a824623","33b7db19877cf2f9306524371fcfc45dcb6436c8e905472ede7346c9f044bf20","b8eb76852bc6e72782541a2725580b1c3df02a0c96db570b0a7681567aeed598","6a7b38162c0cff2af6d2cbd4a98cfac6c0ea4fb1b5700c42f648de9b8c2e8e1f","19828d5df3be9b94598e5c25d783b936fcccaa226a2820bacee9ea94dc8aff2f","5d45955831c840d09b502ce6726a06435866b4736978e235a7d817ed45990df7","3bdf7ca46ef934ee671b3dd0e3d4cddcaecfe6146811b330743acdfb8e60f36c","70dab20ce12f8d153044fc487f2bfd40d21fc64329446f02c6a94b9759c13265","c1eed15acf77bbaa4a4840edbdcf70ff2f3c2a0f5af498578ce020e2f2c73f7f","71943244e9813364dac70c5be97fdce7bc775c96bb212d97a60ba072344dcbbc","6f1fa6fc9b169b165be0d8550a3ca0b5181af0c41e4e1e15f5e6bcb2a6e1c344","e311e90ded1cd037cbece1bc6649eaa7b65f4346c94ae81ba5441a8f9df93fa3","8eb08fff3569e1b9eddb72e9541a21e9a88b0c069945e8618e9bc75074048249","d596c650714d80a93a2fe15dce31ed9a77c2f2b1b9f4540684eaf271f05e2691","8f9fb9a9d72997c334ca96106095da778555f81ac31f1d2a9534d187b94e8bf6","aea632713de6ee4a86e99873486c807d3104c2bf704acef8d9c2567d0d073301","1adb14a91196aa7104b1f3d108533771182dc7aaea5d636921bc0f812cfee5f5","8d90bb23d4e2a4708dbf507b721c1a63f3abd12d836e22e418011a5f37767665","8cb0d02bb611ea5e97884deb11d6177eb919f52703f0e8060d4f190c97bb3f6c","78880fa8d163b58c156843fda943cc029c80fac5fb769724125db8e884dce32d","7856bc6f351d5439a07d4b23950aa060ea972fd98cbc5add0ad94bfc815f4c4c","ce379fb42f8ba7812c2cb88b5a4d2d94c5c75f31c31e25d10073e38b8758bd62","9d3db8aef76e0766621b93a1144069623346b9cfccf538b67859141a9793d16d","13fb62b7b7affaf711211d4e0c57e9e29d87165561971cc55cda29e7f765c44f","8868c445f34ee81895103fd83307eadbe213cfb53bbc5cd0e7f063e4214c49b0","277990f7c3f5cbbf2abd201df1d68b0001ff6f024d75ca874d55c2c58dd6e179","a31dfa9913def0386f7b538677c519094e4db7ce12db36d4d80a89891ef1a48f","f4c0c7ee2e447f369b8768deed1e4dd40b338f7af33b6cc15c77c44ff68f572d","2f268bd768d2b35871af601db7f640c9e6a7a2364de2fd83177158e0f7b454dc","73bfa99afd564cfef641ccb4fdef0debdb3c49f0a817085d68fc6b6508266f09","a004a3b60f23fcfb36d04221b4bef155e11fd57293ba4f1c020a220fadf0fc85","4e145e72e5600a49fa27282d63bb9715b19343d8826f91be0f324af73bc25322","62f734f7517d2ca3bf02abddaf8abf7e3de258667a63e8258373658bbb9153b6","df99236666c99f3e5c22c886fc4dba8156fed038057f7f56c4c39a0c363cc66a","b4bce232891b663cc0768f737f595a83de80b74671db22b137570ef2dc6b86ef","781b566c3eccba1a2cafbb827fb6fc02d5147c89a40e11c7892057481a195270","c9befaf90879c27ee3f7f12afd15b4531fbbea9ec37d145b83807a67d9f55c82","8630f26d1038328e6b9da9c082f6fa911903bc638499baa6cfab002b5a70af96","73474d70a9b4f02771119085c4cd7562be4169e7973544c9541341ca2931aa3d","54da497c3b3b94fae91a66ed222e21411dc595a17f9e6bd229e233d0de732691","803da2f4e024efa2edc55c67d35c5240e7ae599baf9263b453acd02127a582e9","b8b070df71250096699ad55a106d161d403347ed335f72c5ae8485e5d858524d","a9716557f56781aef13d6d3c5dafc61236f64bfd48d462c4848a7eca25f924ff","3d15b5e24065431bf7831b8e84000c0e767d921135af86ef0b0c034f14df5d8f","a563202fc316d8926dc83759cec155d5c028a7828996cbd283470ac7e8c58727","e5c004f39619ebaaa2475b18e949e12e51ff629132f48d56608081e5f0195577","e6b7a14eb53f023f455f4513b6a560f004fa1ebf6cc298b479be796541e322e6","771bf8091a4e40be8f539648b5a0ff7ecba8f46e72fc16acc10466c4c1304524","cb66d1c49ad20e7246b73671f59acaaaac72c58b7e37faae69ae366fd6adf1d3","e5c1c52655dc3f8400a3406fd9da0c4888e6b28c29de33bee51f9eaeda290b4d","1e28ee6d718080b750621e18befe236487df6685b37c17958520aaf777b7aeff","8891345dbe1920b9ed3f446a87de27b5cd6b2053112f6ff3975a661f9a03ec34","a72e21b05b937630b97b1d36bb76b879bb243a021516aef10701775f2da7f872","4debe398f42800c1359d60396fc76aa4fa34a23a96b597672b5c284fd81c0158","a720d8028d38f2b94855967789252c6148957dcd24e280d193b78db00eb3a099","1b0818297187a33e2c24c39145b409e11624523d32364edc22bceaf1f4c86f1b","332e362ba8bd05237c661ba685b2c37e9cde5e0876cb81bf515d15623bdee74c","84648722d2b1f16c55cb68dbfaf18b913a13a78274641f7236eeb4d7088f6db8","f63d313c2673117608b3ed762ac07f618ee873bee3764406b06bcfcb5a713afe","2e2a2a0f7ef2a7587cfe40a96dbca31e8badb15a8a42bf042fe7a63abc9e2f27","2bb32fb3f0fe14c48170dcad3d2a501c1883516d4da9cbd0a2043d90c9789a7b","352532af4d27bdf545d9bb20f0c55758138327404bd86f0934edc7ded76be7e6","64d93f4a24f8a70b64658a7d9b9e96bd46ad498ad5dc9cdb9d52da547e77ff68","8a728de3047a1dadcb69595e74c3d75bc80a2c8165f8cf875ab610042a137fbe","3eafed0be4b194295bcde379e7d083779d0f27f31b715738a3beac49547dc613","7e74740cb7a937af187118ae4582fbe5d4d30b34e9cddec2bd7f7a865e7824ca","8cdf90b59995b9f7c728a28e7af5dc4431f08f3346e6c16af49f548461a3e0aa","1d472b3eedeeaab5418ea6563734fffc68c404feac91900633e7126bee346590","6cf7182d798892394143549a7b27ed27f7bcf1bf058535ec21cc03f39904bfb3","abe524377702be43d1600db4a5a940da5c68949e7ac034c4092851c235c38803","daf4418239ceadb20481bff0111fe102ee0f6f40daaa4ee1fdaca6d582906a26","8a5c5bc61338c6f2476eb98799459fd8c0c7a0fc20cbcd559bb016021da98111","644cf9d778fa319c8044aed7eeb05a3adb81a1a5b8372fdc9980fbdd6a61f78e","d2c6adc44948dbfdece6673941547b0454748e2846bb1bcba900ee06f782b01d","d80b7e2287ee54b23fe6698cb4e09b1dabc8e1a90fb368e301ac6fbc9ad412e2","60b678d3c92834151ca6701c399c74c961193c06cc9d97da32cc4ad22ee5951e",{"version":"c7eebbc98b3e28df60899db055f0b1940295e6c68173e1859b97c062e02e00cf","affectsGlobalScope":true},"816f825b072afd246eb3905cf51528d65e6fe51c12a1f8fb370c93bb0e031c9b","f6a64974d6fab49d27f8b31578a08662b9a7f607de3b5ec2d7c45b3466d914fd","a8e9d24cd3dc3bd95b34eb6edeac7525b7fdbe23b373554bdc3e91572b8079ee","1d5fd841722ce9aa05b9d602153c15914108bdaa8154bdd24eddadb8a3df586c","14788c10b66324b98feee7a2567eb30d1066e11506e54bf1215b369d70da4932","316785de2c0af9fbd9f2191904670e880bc3836671dd306236675515e481973a","070d805e34c4b9a7ce184aabb7da77dc60f2bdb662349cf7fc23a2a69d17de8d","092deae5b432b6b04f8b4951f1478c08862e832abd4477315dba6ea0c39f1d9e","27d668b912bf3fd0a4ddf3886a8b405eed97505fdc78a9f0b708f38e3e51655d","72654e8bed98873e19827d9a661b419dfd695dbc89fd2bb20f7609e3d16ebd50","66bdb366b92004ba3bf97df0502b68010f244174ee27f8c344d0f62cb2ac8f1e","ae41e04ff8c248ab719fe7958754e8d517add8f1c7abcc8d50214fd67c14194d","558008ff2f788e594beaa626dfcfb8d65db138f0236b2295a6140e80f7abd5d2",{"version":"6573e49f0f35a2fd56fd0bb27e8d949834b98a9298473f45e947553447dd3158","affectsGlobalScope":true},{"version":"e04ea44fae6ce4dc40d15b76c9a96c846425fff7cc11abce7a00b6b7367cbf65","affectsGlobalScope":true},{"version":"7526edb97536a6bba861f8c28f4d3ddd68ddd36b474ee6f4a4d3e7531211c25d","affectsGlobalScope":true},"3c499fc4aad3185e54006bdb0bd853f7dd780c61e805ab4a01a704fa40a3f778",{"version":"13f46aaf5530eb680aeebb990d0efc9b8be6e8de3b0e8e7e0419a4962c01ac55","affectsGlobalScope":true},"17477b7b77632178ce46a2fce7c66f4f0a117aa6ef8f4d4d92d3368c729403c9",{"version":"700d5c16f91eb843726008060aebf1a79902bd89bf6c032173ad8e59504bc7ea","affectsGlobalScope":true},"169c322c713a62556aedbf3f1c3c5cf91c84ce57846a4f3b5de53f245149ec7b",{"version":"b0b314030907c0badf21a107290223e97fe114f11d5e1deceea6f16cabd53745","affectsGlobalScope":true},"7c6c5a958a0425679b5068a8f0cc8951b42eb0571fee5d6187855a17fa03d08a",{"version":"f659d54aa3496515d87ff35cd8205d160ca9d5a6eaf2965e69c4df2fa7270c2c","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"4a4d7982941daaeb02f730f07578bce156d2c7cabfa184099321ed8b1e51591b",{"version":"cc8e57cfe18cd11c3bab5157ec583cfe5d75eefefe4b9682e54b0055bf86159f","affectsGlobalScope":true},"75f6112942f6aba10b3e2de5371ec8d40a9ab9ab05c8eb8f98a7e8e9f220c8a2",{"version":"8a3b75fccc93851209da864abe53d968629fab3125981b6f47008ec63061eb39","affectsGlobalScope":true},"4aafdcfff990abfe7feb894446ab43d2268657084ba656222e9b873d2845fe3c",{"version":"d6f55de9010fbefe991546d35da3f09ae0e47afae754cb8a4c867fd7e50dcec0","affectsGlobalScope":true},"afac637a8547d41243dd8c4824c202c9d024534c5031181a81dece1281f1e261",{"version":"1ce2f82236ecdd61ff4e476c96d83ce37d9f2a80601a627fe1d3048e8648f43c","affectsGlobalScope":true},"42d908b851ddcf6df729c0a2ae56f151bad6610ea368729d68f0c8fbbd779913",{"version":"592e99b73ae40c0e64ce44b3e28cea3d7149864f2f3cbc6ccb71f784373ade97","affectsGlobalScope":true},"fa601c3ce9e69927d13e178fdcb6b70a489bb20c5ca1459add96e652dbdefcf6",{"version":"8f8ebce0e991de85323524170fad48f0f29e473b6dd0166118e2c2c3ba52f9d6","affectsGlobalScope":true},"e58a369a59a067b5ee3990d7e7ed6e2ce846d82133fb5c62503b8c86427421a4",{"version":"f877e78f5304ec3e183666aab8d5a1c42c3a617ff616d27e88cc6e0307641beb","affectsGlobalScope":true},"82a66c8db63050ce22777862d6dc095b5e74f80f56e3a2631870d7ee8d104c9e",{"version":"4fc0006f46461bb20aac98aed6c0263c1836ef5e1bbf1ca268db4258ed6a965e","affectsGlobalScope":true},"e086e212ddb5de48f83d971e892949a9ed5ada7134b3116f17768b6885bce6f3",{"version":"867954bf7772a2979c5c722ef216e432d0d8442e995e6018e89a159e08d5d183","affectsGlobalScope":true},"6cc643a497641f28562d8a24b3bd6c4252f3476b462ea406f3123ae70be343ce",{"version":"cd8a7e7d61af5ca34b39095ab24bdcb308bfd4ab379df8ef9d53ce9fa83187a8","affectsGlobalScope":true},"9e837aadb58587a9f79d1ba6a1625cfe40e4077c6bc89cd1c1d5886a2d2489cc",{"version":"544f8c58d5e1b386997f5ae49c6a0453b10bd9c7034c5de51317c8ac8ea82e9a","affectsGlobalScope":true},"2382c18dddfe93b455dfaccc5e6ad795cc33ba8a6a72de41622ef03dd27e377f",{"version":"ae9b62dd72bf086ccc808ba2e0d626d7d086281328fc2cf47030fd48b5eb7b16","affectsGlobalScope":true},"b03e600a48c41adfad25cda292a2bcd87963f7fce09f3561978482f9f6530fc4",{"version":"cc1bddca46e3993a368c85e6a3a37f143320b1c13e5bfe198186d7ed21205606","affectsGlobalScope":true},"34cb99d3f4d6e60c5776445e927c460158639eeb8fd480e181943e93685e1166",{"version":"c77843976650a6b19c00ed2ede800f57517b3895b2437d01efc623f576ef1473","affectsGlobalScope":true},"c8db20febc70a33fc8668c2f6475c42be345a0545f6bd719f787b62e60d8f49e",{"version":"5ebba285fdef0037c21fcbef6caad0e6cc9a36550a33b59f55f2d8d5746fc9b2","affectsGlobalScope":true},"85397e8169bdc706449ae59a849719349ecef1e26eef3e651a54bb2cc5ba8d65",{"version":"2b8dc33e6e5b898a5bca6ae330cd29307f718dca241f6a2789785a0ddfaa0895","affectsGlobalScope":true},"cc2c766993dfe7a58134ab3cacd2ef900ace4dec870d7b3805bf06c2a68928bd",{"version":"dde8acfb7dd736b0d71c8657f1be28325fea52b48f8bdb7a03c700347a0e3504","affectsGlobalScope":true},"96c711d561eaa29cec567f90571ea515f91412bb005ac2a4538bcadf0e439fa5",{"version":"34c9c31b78d5b5ef568a565e11232decf3134f772325e7cd0e2128d0144ff1e5","affectsGlobalScope":true},"7e72ce64e021f6f43c8743682a3c7cf2035166f8283ca675a4589e1bd8a63e55",{"version":"60cc5b4f0a18127b33f8202d0d0fde56bc5699f4da1764b62ed770da2d5d44f1","affectsGlobalScope":true},"5da9bade8fea62743220d554e24489ea6aa46596e94e67cfff19b95804a54a5f",{"version":"d11fa2d42f762954eb4a07a0ab16b0a46aa6faf7b239f6cd1a8f5a38cb08edcd","affectsGlobalScope":true},"87daa4e406afddcea17302b85e08a2de9444fe561347cd1572ffa671c0171552",{"version":"781afd67249e2733eb65511694e19cdcdb3af496e5d8cdee0a80eba63557ff6e","affectsGlobalScope":true},"6b32428a82779c0a33356f537ec131882935bc76ad0371722618a9ac6403cca0",{"version":"f3275e1f0e5852b1a50fd3669f6ad8e6e04db94693bcfb97d31851e63f8e301e","affectsGlobalScope":true},"de82ff7892200413e9e0c54b038d87099de9d74a9e815b3cb6e9908f950f6ccd",{"version":"8a6ecff784dafbdb121906a61009670121882523b646338196099d4f3b5761d8","affectsGlobalScope":true},"1d5f5827fdeb0d59f76a1ee6caf0804d5d3c260e60e465b0b62baea333199e62",{"version":"256bdff4c082d9f4e2303138f64c152c6bd7b9dbca3be565095b3f3d51e2ab36","affectsGlobalScope":true},"0b14c87ea4887402356f7c8b321dfd944880ae76cd703e342c57ac7a83de4465",{"version":"e214a2a7769955cd4d4c29b74044036e4af6dca4ab9aaa2ed69286fcdf5d23b3","affectsGlobalScope":true},"85647ff695641f7f2fdf511385d441fec76ee47b2ed3edb338f3d6701bf86059",{"version":"25659b24ac2917dbfcbb61577d73077d819bd235e3e7112c76a16de8818c5fd6","affectsGlobalScope":true},"d6f83ae805f5842baa481a110e50ca8dbed0b631e0fd197b721de91dd6948d77",{"version":"7402e6ca4224d9c8cdd742afd0b656470ea6a5efe2229644418198715bb4b557","affectsGlobalScope":true},"36b19abb9d0a0e6809f9493786fe73c3058f66f0a5778554b30bd09d6d21d3d8",{"version":"242b00f3d86b322df41ed0bbea60ad286c033ac08d643b71989213403abcdf8a","affectsGlobalScope":true},"009a83d5af0027c9ab394c09b87ba6b4ca88a77aa695814ead6e765ea9c7a7cd",{"version":"4dc6e0aeb511a3538b6d6d13540496f06911941013643d81430075074634a375","affectsGlobalScope":true},"3a9312d5650fcbaf5888d260ac21bc800cc19cc5cc93867877dfeb9bbd53e2ca",{"version":"7ed57d9cb47c621d4ef4d4d11791fec970237884ff9ef7e806be86b2662343e8","affectsGlobalScope":true},"3bee2291e79f793251dcbea6b2692f84891c8c6508d97d89e95e66f26d136d37",{"version":"5bd49ff5317b8099b386eb154d5f72eca807889a354bcee0dc23bdcd8154d224","affectsGlobalScope":true},"1d5156bc15078b5ae9a798c122c436ce40692d0b29d41b4dc5e6452119a76c0e",{"version":"bd449d8024fc6b067af5eac1e0feb830406f244b4c126f2c17e453091d4b1cb3","affectsGlobalScope":true},"b6ce2b60910be81d4f2000ffe0bdbec408d6423196f6ad00db2a467cd53d676b",{"version":"dd5eab3bb4d13ecb8e4fdc930a58bc0dfd4825c5df8d4377524d01c7dc1380c5","affectsGlobalScope":true},"f011eacef91387abfde6dc4c363d7ffa3ce8ffc472bcbaeaba51b789f28bd1ef",{"version":"ceae66bbecbf62f0069b9514fae6da818974efb6a2d1c76ba5f1b58117c7e32e","affectsGlobalScope":true},"4101e45f397e911ce02ba7eceb8df6a8bd12bef625831e32df6af6deaf445350",{"version":"07a772cc9e01a1014a626275025b8af79535011420daa48a8b32bfe44588609c","affectsGlobalScope":true},"6d0790ee42e40b27183db10ce3be3f0e98dc3944d73c9a4c092bf5ec3bb184f7",{"version":"5be6cb715e042708f5ec2375975ba7a855f54d3554cf8970cd49d0434ad5c235","affectsGlobalScope":true},"02fbf1f4aabb776e2cf229fd74840a27eee5a08642b8ca0677e680a8427d6d12",{"version":"4d13cccdda804f10cecab5e99408e4108f5db47c2ad85845c838b8c0d4552e13","affectsGlobalScope":true},"780abc69f1e0ed0a3ed43cfaf201378faf6e8d8ec13354ed7169159cdeead3b9",{"version":"7ced457d6288fcb2fa3b64ddcaba92dbe7c539cc494ad303f64fc0a2ab72157d","affectsGlobalScope":true},"5d2721c49e058b8f28e495a54f709a004571cd3f57a62df63ed3eddb9e860af1",{"version":"0ccde5fc989806345b5ecca397796e26bbbca2882297adea57009022be7a300a","affectsGlobalScope":true},"730592593eaba845555f4d8f602d8c066972c97a3a8522a0c6f8f721e36bdc90",{"version":"725128203f84341790bab6555e2c343db6e1108161f69d7650a96b141a3153be","affectsGlobalScope":true},"e6ed9d8801e5fddc1a4260510e4266fbf80d5767cf2b9a6cbe8d0eb39d45971d",{"version":"947bf6ad14731368d6d6c25d87a9858e7437a183a99f1b67a8f1850f41f8cedd","affectsGlobalScope":true},"8eda6e4644c03f941c57061e33cef31cfde1503caadb095d0eb60704f573adee",{"version":"0538a53133eebb69d3007755def262464317adcf2ce95f1648482a0550ffc854","affectsGlobalScope":true},"a1dd4d1eada136ec8afb47871da02c1a28be6adc81717106ded5fcdd6548835c",{"version":"8d3ccb8e37673a205fb24f1a3ce7bc9237d32be05494c240245e3a783dd8e16d","affectsGlobalScope":true},"92492e2b8992cc1d68eca60f289ce9fa29dda1eb4d12eed577bcdb958666754b",{"version":"d155bad43ed0facccf039f4220d5d07fbafab34d9b1405e30d213d1ab36af590","affectsGlobalScope":true},"4a5259be4d6c85a4cd49745fb1d29d510a4a855e84261ad77d0df8585808292c",{"version":"220f860f55d18691bedf54ba7df667e0f1a7f0eed11485622111478b0ab46517","affectsGlobalScope":true},"3bee701deb7e118ea775daf8355be548d8b87ddf705fe575120a14dcace0468a",{"version":"9c473a989218576ad80b55ea7f75c6a265e20b67872a04acb9fb347a0c48b1a0","affectsGlobalScope":true},"5f666c585bb469b58187b892ed6dfb1ebf4aa84464b8d383b1f6defc0abe5ae0",{"version":"20b41a2f0d37e930d7b52095422bea2090ab08f9b8fcdce269518fd9f8c59a21","affectsGlobalScope":true},"dbac1f0434cde478156c9cbf705a28efca34759c45e618af88eff368dd09721d",{"version":"0f864a43fa6819d8659e94d861cecf2317b43a35af2a344bd552bb3407d7f7ec","affectsGlobalScope":true},"855391e91f3f1d3e5ff0677dbd7354861f33a264dc9bcd6814be9eec3c75dc96",{"version":"ebb2f05e6d17d9c9aa635e2befe083da4be0b8a62e47e7cc7992c20055fac4f0","affectsGlobalScope":true},"aee945b0aace269d555904ab638d1e6c377ce2ad35ab1b6a82f481a26ef84330",{"version":"9fb8ef1b9085ff4d56739d826dc889a75d1fefa08f6081f360bff66ac8dd6c8d","affectsGlobalScope":true},"342fd04a625dc76a10b4dea5ffee92d59e252d968dc99eb49ce9ed07e87a49d0",{"version":"e1425c8355feaaca104f9d816dce78025aa46b81945726fb398b97530eee6b71","affectsGlobalScope":true},"c000363e096f8d47779728ebba1a8e19a5c9ad4c54dbde8729eafc7e75eee8dc",{"version":"42c6b2370c371581bfa91568611dae8d640c5d64939a460c99d311a918729332","affectsGlobalScope":true},"590155b280f2902ebb42a991e9f4817ddf6558e5eb197deb3a693f5e0fc79bd9",{"version":"867b000c7a948de02761982c138124ad05344d5f8cb5a7bf087e45f60ff38e7c","affectsGlobalScope":true},"6f1d28967ec27ef5d244770ac80a62b66f10439aea63ed52e0604a18aad6468c",{"version":"02c22afdab9f51039e120327499536ac95e56803ceb6db68e55ad8751d25f599","affectsGlobalScope":true},"aba5fbfef4b20028806dac5702f876b902a6ba04e3c5b79760b62fc268c1bc80",{"version":"37129ad43dd9666177894b0f3ce63bba752dc3577a916aa7fe2baa105f863de3","affectsGlobalScope":true},"68526c897cd9e129d21f982679011d64068eac52cc437fce5e48bc78670356f3",{"version":"31f709dc6793c847f5768128e46c00813c8270f7efdb2a67b19edceb0d11f353","affectsGlobalScope":true},"eee3c05152eff43e7a9555abbef7d8710bfdb404511432599e8ac63ae761c46c",{"version":"018847821d07559c56b0709a12e6ffaa0d93170e73c60ee9f108211d8a71ec97","affectsGlobalScope":true},"b50322892db37ef61b48411c989f4cd36b3f41205ad10e7c03f14afade571256",{"version":"7832e8fe1841bee70f9a5c04943c5af1b1d4040ac6ff43472aeb1d43c692a957","affectsGlobalScope":true},"9f2282aa955832e76be86172346dc00c903ea14daf99dd273e3ec562d9a90882",{"version":"013853836ed002be194bc921b75e49246d15c44f72e9409273d4f78f2053fc8f","affectsGlobalScope":true},"0e9a7364eaf09801cbb8cf0118441d5f7f011fc0060c60191587526c448974c4",{"version":"e08392a815b5a4a729d5f8628e3ed0d2402f83ed76b20c1bf551d454f59d3d16","affectsGlobalScope":true},"6a7f172fb4524b4091b793d0e2cccdb365876dcf7f056552a93fbf6c2c1d64d9",{"version":"c3dfd6032ba0bc68520b99fc40cb45f46c73f4c98dedcde79b181f1f0632c262","affectsGlobalScope":true},"261f0f336c13435274021ab058138312b2443bd61723de6acbc4e57a8cecf349",{"version":"5768572c8e94e5e604730716ac9ffe4e6abecbc6720930f067f5b799538f7991","affectsGlobalScope":true},"198075277aef627743ef66a469881addbbf2f6c4c508ffb4c96de94137ca8563",{"version":"e2ae8c8fcfb98fae10647c9159915deea2073bdfcc3fe99b5846fd9563867399","affectsGlobalScope":true},"d0984177c1dc95545541f477fb0df1fb76e7454a943c98ed208dc0da2ff096b2",{"version":"f366ca25885ab7c99fc71a54843420be31df1469f8556c37d24f72e4037cb601","affectsGlobalScope":true},"a05b412a93ba43d2d6e9c81718dea87a42c7e4f9e8b1efbaafee03a94eaf4b7a",{"version":"163cc945edad3584b23de3879dbad7b538d4de3a6c51cc28ae4115caee70ce21","affectsGlobalScope":true},"4fefff4da619ba238fccd45484e9ee84ee1ae89152eac9e64d0f1e871911121c",{"version":"d604893d4e88daade0087033797bbafc2916c66a6908da92e37c67f0bad608db","affectsGlobalScope":true},"56ce2cd3aa0ebbcf161faed36a9d119e5ff6f962993f1af29b826eff1801bad3",{"version":"dc265f24d2ddad98f081eb76d1a25acfb29e18f569899b75f40b99865a5d9e3b","affectsGlobalScope":true},"7c1538394a43ce6d7b7c471b87cc97c487bc3bff37fdd2fc5f659c67445a3a03",{"version":"dd7f9be1c6c69fbf3304bc0ae81584e6cd17ab6ad4ab69cb8b06f541318cc97e","affectsGlobalScope":true},"f528ce3ce9430376705b10ee52296d36b83871b2b39a8ae3ecec542fc4361928",{"version":"41ffc155348dd4993bc58ee901923f5ade9f44bc3b4d5da14012a8ded17c0edd","affectsGlobalScope":true},"580eedb87f9ed40ff5fc619507e47c984a1e3fbf2fee8f5eecbe98806997d0ee",{"version":"3e8e0655ed5a570a77ea9c46df87eeca341eed30a19d111070cf6b55512694e8","affectsGlobalScope":true},"c1b3019eeb7120da76e837268ac26beea8dc0aa8d6108e286e9cfa9478af562b","6bb6fda2bba279010a8ffb5221fd28aed12d3d37ebc396a6e0f02840adb17970",{"version":"cc4c74d1c56e83aa22e2933bfabd9b0f9222aadc4b939c11f330c1ed6d6a52ca","affectsGlobalScope":true},"b0672e739a3d2875447236285ec9b3693a85f19d2f5017529e3692a3b158803d",{"version":"8a2e0eab2b49688f0a67d4da942f8fd4c208776631ba3f583f1b2de9dfebbe6c","affectsGlobalScope":true},"229648df48b149ecb40a267e69899456c28dbe4b31e64513be64eb2b58e29f1c",{"version":"f6266ada92f0c4e677eb3fbf88039a8779327370f499690bf9720d6f7ad5f199","affectsGlobalScope":true},"ab149c81ee4c7bb5fd0abea1057389185e334d5038c4c8739faa65ec5feb6ffc",{"version":"fb6cb8911a03c7ac61ee80aafdc072623850dd6a6d9fa0c98b015d8b181153a5","affectsGlobalScope":true},"8946ad9bc3d5c42cdb07de081480d869e358f5986166649a9e4230bea2ea84bd",{"version":"09a227ec52ef63acca2a3a1f31ca6d3affa45b51e18ffdf0036152d5f102dfd7","affectsGlobalScope":true},"c03bcada0b059d1f0e83cabf6e8ca6ba0bfe3dece1641e9f80b29b8f6c9bcede",{"version":"f2eac49e9caa2240956e525024bf37132eae37ac50e66f6c9f3d6294a54c654c","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"a0ad84c717107c133f77f15b344d62633863931d4b3592de20c232ded129c50b",{"version":"7373a173ea1b42648b1779267a5a707eb403ccc31a16761870dbf0660eb234ee","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"ace629691abf97429c0afef8112cc0c070189ff2d12caee88e8913bdd2aaad25",{"version":"99a71914dd3eb5d2f037f80c3e13ba3caff0c3247d89a3f61a7493663c41b7ea","affectsGlobalScope":true},"25a12a35aeee9c92a4d7516c6197037fc98eee0c7f1d4c53ef8180ffc82cb476",{"version":"b4646ac5ca017c2bb22a1120b4506855f1cef649979bf5a25edbead95a8ea866","affectsGlobalScope":true},"54d94aeec7e46e1dab62270c203f7907ca62e4aaa48c6cdcfed81d0cd4da08f3",{"version":"f9585ff1e49e800c03414267219537635369fe9d0886a84b88a905d4bcfff998","affectsGlobalScope":true},"483d29eb2d4b6c4d486f67b682a5d0ca2d4d452e09e6d43eee0f5ef0f4950aee","eaf540a66adaf590521596a4de7d2f86644aae59b5ef449b26d4b00ccfc13ba5",{"version":"1ff9449d1efdebef55b0ba13fe7f04b697c264e73ec05f41f7633dd057468b2d","affectsGlobalScope":true},"79792358436829ae510866561a6c62e37472108ae7a1836ba2b7136eba000bda",{"version":"7c160037704eee2460c7de4a60f3379da37180db9a196071290137286542b956","affectsGlobalScope":true},"87bdcea89ec013888b0fdb1694ce0cb4b8bf6b9f03f90429cbb4e00b510f838d",{"version":"4681d15a4d7642278bf103db7cd45cc5fe0e8bde5ea0d2be4d5948186a9f4851","affectsGlobalScope":true},"91eb719bcc811a5fb6af041cb0364ac0993591b5bf2f45580b4bb55ddfec41e2","05d7cf6a50e4262ca228218029301e1cdc4770633440293e06a822cb3b0ef923",{"version":"78402a74c2c1fc42b4d1ffbad45f2041327af5929222a264c44be2e23f26b76a","affectsGlobalScope":true},"cc93c43bc9895982441107582b3ecf8ab24a51d624c844a8c7333d2590c929e2",{"version":"c5d44fe7fb9b8f715327414c83fa0d335f703d3fe9f1045a047141bfd113caec","affectsGlobalScope":true},"f8b42b35100812c99430f7b8ce848cb630c33e35cc10db082e85c808c1757554",{"version":"ba28f83668cca1ad073188b0c2d86843f9e34f24c5279f2f7ba182ff051370a4","affectsGlobalScope":true},"349b276c58b9442936b049d5495e087aef7573ad9923d74c4fbb5690c2f42a2e",{"version":"ad8c67f8ddd4c3fcd5f3d90c3612f02b3e9479acafab240b651369292bb2b87a","affectsGlobalScope":true},"1954f24747d14471a5b42bd2ad022c563813a45a7d40ba172fc2e89f465503e2",{"version":"05bbb3d4f0f6ca8774de1a1cc8ba1267fffcc0dd4e9fc3c3478ee2f05824d75d","affectsGlobalScope":true},"37e69b0edd29cbe19be0685d44b180f7baf0bd74239f9ac42940f8a73f267e36",{"version":"afba2e7ffca47f1d37670963b0481eb35983a6e7d043c321b3cfa2723cab93c9","affectsGlobalScope":true},"bb146d5c2867f91eea113d7c91579da67d7d1e7e03eb48261fdbb0dfb0c04d36",{"version":"90b95d16bd0207bb5f6fedf65e5f6dba5a11910ce5b9ffc3955a902e5a8a8bd5","affectsGlobalScope":true},"3698fee6ae409b528a07581f542d5d69e588892f577e9ccdb32a4101e816e435",{"version":"26fc7c5e17d3bcc56ed060c8fb46c6afde9bc8b9dbf24f1c6bdfecca2228dac8","affectsGlobalScope":true},"46fd8192176411dac41055bdb1fdad11cfe58cdce62ccd68acff09391028d23f",{"version":"22791df15401d21a4d62fc958f3683e5edc9b5b727530c5475b766b363d87452","affectsGlobalScope":true},"150ac8ae1c4500f57f2af6e491717a8858a40619063164b1ad746d6a9ef30207","cefffd616954d7b8f99cba34f7b28e832a1712b4e05ac568812345d9ce779540",{"version":"a365952b62dfc98d143e8b12f6dcc848588c4a3a98a0ae5bf17cbd49ceb39791","affectsGlobalScope":true},"af0b1194c18e39526067d571da465fea6db530bca633d7f4b105c3953c7ee807",{"version":"b58e47c6ff296797df7cec7d3f64adef335e969e91d5643a427bf922218ce4ca","affectsGlobalScope":true},"76cbd2a57dc22777438abd25e19005b0c04e4c070adca8bbc54b2e0d038b9e79","4aaf6fd05956c617cc5083b7636da3c559e1062b1cadba1055882e037f57e94c","171ad16fb81daf3fd71d8637a9a1db19b8e97107922e8446d9b37e2fafd3d500",{"version":"d4ce8dfc241ebea15e02f240290653075986daf19cf176c3ce8393911773ac1b","affectsGlobalScope":true},{"version":"52cd0384675a9fa39b785398b899e825b4d8ef0baff718ec2dd331b686e56814","affectsGlobalScope":true},{"version":"58c2bb87fdf190100849a698042d09373be574e531758b1cfe3533258c3d4daa","affectsGlobalScope":true},{"version":"b8f8d5bc91f9618e50778e56f99e74f63dc08f7a91799379887d0fb3ff51fe5e","affectsGlobalScope":true},{"version":"769c459185e07f5b15c8d6ebc0e4fec7e7b584fd5c281f81324f79dd7a06e69c","affectsGlobalScope":true},{"version":"c947df743f2fd638bd995252d7883b54bfef0dbad641f085cc0223705dfd190e","affectsGlobalScope":true},"db78f3b8c08924f96c472319f34b5773daa85ff79faa217865dafef15ea57ffb","605f603f63afed9a1b8ce2fe033a34f0663bb0f07e445ba0640b5fe5c1deabda","90c2eefc191f9bc775711c217ce220979d67c50621afd603886fde10e40c4c03","68024de3ff8f4b256cb39e45a715a66b2a86d4d0f616b945629872b1b3093a92",{"version":"2234307ef31532c524244c15b1f45cfd699b0d55222f8a9a3e38a1516585e9fc","affectsGlobalScope":true},{"version":"61a4f1ecc7df3889362f558a9d8888f8a6ceecd4500790acf81f77c0803de3f1","affectsGlobalScope":true},"3dc19b05d67ebdd68d8c28572cd0f2f61ee4a7576d267bcba7795ebc4072be1d","1aed35f40a800553b121163a23a09f79d84dc460f76de5420cc252a43dc89763","2b191fc880b21b307745636af662342d2669519d7bbecd197bb59fa0edffc8cf","16f9007c166c4d16c3caa7c10c839d18c6881371a195157d7f0e62f71d75a969","ecc5ccb8e002df44dc886f1ed6d4fbc3f7ae2cabc2ca2600959cf8a93ae13f0b","5ea8b7a7c027000d54751c4dc869cee17ff7a371469204bce0e6bb8d1ca5acb5","22616d0b7451b57b941d6db34456e57e5bb787b65038e65a024660f5699d7d89","c75604169c25f6a5d63d76bd927da3829f9cdfb74e8dfb67fb8af2a0148ac476","6ff7091f4f5bfe69127c60a2f8f402cf9387fd19590b6010de6f57f95d5c5fff"],"root":[838,847,848,851],"options":{"inlineSources":true,"module":99,"noEmitOnError":false,"noImplicitAny":false,"noImplicitThis":true,"outDir":"../../../../dist/dev/.uvue/app-android","rootDir":"../../../../dist/dev/.tsc/app-android","skipLibCheck":true,"sourceMap":true,"strict":true,"target":99,"tsBuildInfoFile":"./.tsbuildInfo","useDefineForClassFields":false},"fileIdsList":[[46,48,50,832,833,834],[593,607,828,831,833,834,835,836],[519,526],[592],[511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591],[514,515,516,517,518,520,522,524,525,527],[565],[526,530],[567],[586],[521],[527],[520,526,537],[526,535],[514,515,516,517,518,522,526,527,535,536],[566],[526],[535,536,537,582],[518,527,568,571],[513,518,523,528,535,563,564,568,569],[523,526],[570],[528],[517,526],[526,527],[526,537],[525,526,535,536,537],[530],[46,48,50,524,832,833],[830],[829],[608,609,760,797,804,823,825,827],[826],[824],[611,613,615,617,619,621,623,625,627,629,631,633,635,637,639,641,643,645,647,649,651,653,655,657,659,661,663,665,667,669,671,673,675,677,679,681,683,685,687,689,691,693,695,697,699,701,703,705,707,709,711,713,715,717,719,721,723,725,727,729,731,733,735,737,739,741,743,745,747,749,751,753,755,757,759],[610],[612],[614],[616],[620],[622],[624],[626],[628],[630],[632],[634],[636],[638],[640],[642],[644],[646],[648],[650],[652],[654],[656],[658],[660],[662],[664],[666],[668],[670],[672],[674],[676],[678],[680],[682],[684],[686],[688],[690],[692],[694],[696],[698],[700],[702],[704],[706],[708],[710],[712],[714],[716],[718],[720],[722],[724],[726],[728],[730],[732],[734],[736],[738],[740],[742],[744],[746],[748],[750],[752],[754],[756],[758],[762,764,766,768,770,772,774,776,778,780,782,784,786,788,790,792,794,796],[761],[763],[765],[767],[769],[771],[787],[791],[793],[795],[799,801,803],[798],[301,453],[800],[802],[806,808,810,812,814,816,818,820,822],[821],[813],[809],[807],[819],[811],[815],[805],[817],[530,537],[606],[594,595,596,597,598,599,600,601,602,603,604,605],[537],[530,537,590],[506,507,508,509],[505],[453],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27],[46,48,50,833,834],[44],[44,45,46,48],[41,48,49,50],[42],[41,46,48,833,834],[45,46,47,50,833,834],[29,30,31,32,33,34,35,36,37,38,39],[33],[36],[33,35],[67,68],[198],[198,201,390,462],[201],[196,329,390,453,472,473],[51,63,66,79,173,175,185,188,191,196,252,255,274,278,280,281,282,299,301,316,329,340,342,344,345,346,366,369,387,390,440,452,453,455,456,463,464,467,468,469,470,474,476,482,484,485,486,487,488,493,494,497,498,499,502,503,504],[66,252,281,282,496,505],[66,67,68,274,439,440],[274],[66,79,99,175,274,329,340,342,344,346,366,369,390,453,468,474,475,476,485,505],[51,66,67,68,80,173,196,201,252,255,282,328,342,344,345,369,390,440,453,455,462,466,467,468,505],[51,66,173,390,453,469,473],[390,469],[51,66,173,454],[66,67,68,102,253,254,255,440,453],[67,68,107,500,501],[67,68,173,302,316],[68,108,174,390,453],[66,185,316,440,453,505],[66,67,68,453,505],[67,68,453],[52,66,440,453],[67,68,69,255,274,310,438,440,453],[63,67,68],[252],[281],[51,66,173,231,232,252,267,268,273,274,278,279,280,282,453],[66,231,232,274,278,279,280,283,304],[66,67,68,274],[57,60,61,66,231,232,274,275,278,279,280,283,301,302,303,304,305,306,307,308,309,453],[61,66,101,102,172,185,196,203,204,234,248,249,252,253,255,273,274,281,301,310,313,319,321,328,329,375,440,441,448,450,451,452],[273],[61,66,101,102,172,185,203,204,234,252,253,255,273,274,281,301,310,313,319,321,328,329,375,440,441,448,450,451,452,453,495],[79],[65,66,67,68,107,185,196,265,274,310,319,328,439,453],[67,68,97,254,266,274,310,312,440],[66,67,68,102,253,254,440,453],[51,173,275,453],[67,68,323],[67,68,97,257],[67,68,97,319,320,453],[263],[67,97,320,321],[67,68,260],[67,68,263],[67,68,320],[67,68,256,258,259,260,261,262,263,264,265,268,269,321],[58,60,61,63,67,68,70,102,253,255,272,274,301,315,316,440],[66,67,97,233,319,329],[66,67,68,107,172,185,233,250,251,252,253,254,255,256,258,260,264,265,268,270,271,272,313,314,315,317,318,321,328,329,440],[67,266],[67,68,319,320],[67,68,97,257,266,267],[67,68,97,258,265,268,313,319,329],[67,68,262],[51,58,66,67,68,164,203,204,231],[61,232,233],[67,68,328],[67,68,71],[232],[325],[58,231,322,324,453],[61,66,196,232,233,234,245,246,247,248,249,252,321,326,327,329],[245,247,248,328,329],[196],[52,185],[67,68,306],[66,67,68,306],[274,311],[66,67,68,185],[66,67,68,186],[102,274],[58,66,274,275,276,277,310],[450],[58],[278],[172,278,279,280,442,444,445,446,447,448,449],[442],[443],[231,443],[60,67,68,87,140,174,240,246,284,287,289,299,300],[236,289,301],[72,107,108,174,180,236,240,241,285,286,288,294,297,298,300,301],[61,72,106,107,181,196,239,247,248,296,299,328],[67,68,72,99,102,248,274,301,329,453],[71,108,148,172,231,234,240,328],[241],[67,68,301],[67,68,107],[108,173],[174],[108,140,143,287],[61,240,299],[107,108,181,240,299,301],[107,180],[71,72,107,180,235,236,237,238,239,245],[108,174],[299],[72,107,108,174,180,181,240,241,286,288,294,297,299,300,301],[67,68,106],[67,68,107,180],[72,107,236,239,291,301],[107,174,240,292,295,296],[236,287,290],[102],[107,240,293],[51,172,234,242,243,244],[82,83,84],[82,83],[89,93],[89],[89,95],[87,88,89,91,92,94,96,102],[67,68,179],[90],[65],[66,67,68,274,301],[67,68,301,478,479],[66,67,68,73,79,102,274,316,453,477,478,480,481],[66,67,68],[67,68,172],[63],[52,54,57,62,63,64,65,67,68],[68,75],[97,99,101],[51,53,67],[52],[67,68,70],[97,100],[60,61],[66,67,68,98,102],[51],[52,67,68,99,102],[51,52,53,54,55,56,57,63,64,65,66],[67],[51,58,67,68,102,172,203,204,205,212,230],[60,61,62,67,68],[66,67,68,102],[67,68,73],[68],[73,74,75],[74,76,77],[395],[391],[390,391,392,393],[240],[180,196,453],[390,453,462],[107,196,198,201,390,453,462,465],[462,463,466],[246],[67,68,365],[366],[57,66,67,68,107,179,181,182,390],[66,183],[68,183,390],[67,68,71,107,181,183],[107,342,344,345,390],[342,343,390,453],[196,197,199,453],[196,199,200,390,453],[107,181,350,352],[67,68,390],[66,67,68,191],[106,184,190,192,390],[66,67,68,274,439],[329,344,390],[234,252,328,453,496],[67,68,107,246,284,371,372,373,374],[106,107,180],[376],[67,68,180],[67,68,69,439],[67,68,76,78,81,85,86,103],[68,104],[66,67,68,71,97,336,337],[66,79,102,108,280,336,355,356,357,358,359,360,361,362,363],[67,68,69,274],[358],[336],[67,68,79,80],[67,68,81,105],[196,390,453,462],[79,185,343,440],[344,453],[72,248,329,341,343,390,440],[67,68,105,174],[334,390],[67,68,301,328,453],[67,68,371],[107,280,384],[107,371,383],[104],[329,342,344,390],[67,68,107,299,382],[58,67,68,87,107,181,351],[105],[66,67,68,71,390,394,396,437],[107,175,390],[67,68,388],[390],[67,68,184,330],[52,54,66,67,68,72,79,102,107,174,175,181,183,184,187,188,189,193,194,195,196,200,202,240,248,249,252,292,299,301,328,329,331,332,333,334,335,338,340,346,349,353,354,364,366,367,368,369,370,371,375,377,380,381,385,386,387,389,439,453],[54,66,79,107,175,181,183,190,196,197,249,252,299,340,346,366,368,371,380,381,387,389,390,453,457,458,459,460,461],[329],[66,107,340,346,366,369,371,390],[66,71,174,184,187,188,189],[52,66,79,102,105,107,175,249,252,274,329,340,342,344,346,353,366,385,390,453,463,466,468,476,482,483,484],[57,106,107,372,378,379],[106,199,380],[106],[347],[199,280,348],[52,67,68,101,350,352,375,390,458,489,490,491,492],[107,380],[277,390,462],[196,453,462],[390,462,471],[68,175,196,329,342,344,453,462],[339],[66,102,172,185,247,248,313,329,440,451,453],[65,112,113,171],[51,61,164,172],[51,60,164,172],[58,60],[58,59],[60,109,172],[110,207],[58,110,207,208,209,229],[65,206],[207],[110],[58,110,207,209,212,216,218],[58,60,61,111,207,213],[51,60,61,110,207,209,214],[215],[65,112],[61,65,111,113],[140,141,142,143,144,145,146,147],[93],[148,152,157,160,161,163,171],[150,153],[110,148,151,154,155,209,211,219,224,226,228,230],[148,149,150,151,152,153,154,156,157,159,163,171],[93,162,164],[148,150],[206,207,228],[206,207,211,227],[93,110,209],[150,151,153,154,224,226],[93,148],[148,153],[148,155],[93,159,220,221,224],[220,225],[58,224],[110,209,211,213,217,224,226],[110,148,151,154,155,209,211,212,224,226],[93,158],[220,221,224,225],[221],[220,221,222,224,226],[93,210,213,218,219,223,229],[140,141],[136],[135],[136,137],[58,116,138,139,169,171],[113,114,115,116,117,170,172],[171],[60,61,113,117,152,156,157,162,164,165,166,167,168,170,171],[115,116],[114],[58,115],[140,148],[129,131,132],[65,120,122],[65,124,125],[65,112,123,126],[131],[65,128],[65,129],[134],[127,129,130,135],[61],[121],[65,124],[65,424],[65,405,425,426],[400,411,423],[176,177,178,398,401,403,404,409,410,420,423,428],[176,177,178,398,401,403,404,420,422,423,428,430,433,434],[397,400,402,404,409,410,411,412,421,422,430,433,434,436],[176,177,178,411,423],[176,177,178,398,401,402,403,404,420,421,423,428,430,433,434],[176,397,398,401,402,403,404],[65,400,402,404,409,410,411,412,413,414,416,418,419,421,422,430,433,434,436,437],[179,430,434,435],[65,176,177,178],[399,400,401,403,404,405,406,423,427,434],[65,176,177,178,398,401,402,403,404,429,433,434,436,437],[179,430,434,436],[65,176,177,178,398,401,402,403,404,407,408,409,410,411,415,417,418,420,421,423,428,429,430,433,434,436,437],[65,176,177,178,398,401,402,403,404,408,411,415,419,420,421,422,428,429,430,433,434,436,437],[65,176,177,178,398,401,402,403,404,407,416,419,428,430,433,434,436],[65,176,177,178,398,401,402,403,404,407,408,415,416,419,420,428,430,433,434,436,437],[65,176,177,178,398,401,402,403,404,419,420,428,429,430,433,434,436],[65,176,177,178,409,417,419,423],[401,402,403],[176],[176,177],[176,177,400,402,404],[404],[176,179],[65,401],[65,179,416,430,433],[65,179,416,430,431,433],[65,176,177,178,398,401,402,403,404,408,411,415,416,419,420,421,422,428,429,430,433,434,436],[65,397,404,432,433],[65,176,398,401,402,403,404,432,434],[118,119],[65,118,119,133],[46,48,50,833,834,849,850],[848],[57,172,204,301,453,462,839,840,841,842,843,844],[845],[844,845,846]],"referencedMap":[[833,1],[837,2],[520,3],[593,4],[592,5],[526,6],[566,7],[589,8],[568,9],[587,10],[522,11],[521,12],[585,13],[530,12],[564,14],[537,15],[567,16],[527,17],[583,18],[581,12],[580,12],[579,12],[578,12],[577,12],[576,12],[575,12],[574,12],[573,19],[570,20],[572,12],[524,21],[528,12],[571,22],[563,23],[562,12],[560,12],[559,12],[558,24],[557,12],[556,12],[555,12],[554,12],[553,25],[552,12],[551,12],[550,12],[549,12],[547,26],[548,12],[545,12],[544,12],[543,12],[546,27],[542,12],[541,17],[540,28],[539,28],[538,26],[534,28],[533,28],[532,28],[531,28],[529,23],[834,29],[831,30],[830,31],[828,32],[827,33],[825,34],[760,35],[611,36],[613,37],[615,38],[617,39],[621,40],[623,41],[625,42],[627,43],[629,44],[631,45],[633,46],[635,47],[637,48],[639,49],[641,50],[643,51],[645,52],[647,53],[649,54],[651,55],[653,56],[655,57],[657,58],[659,59],[661,60],[663,61],[665,62],[667,63],[669,64],[671,65],[673,66],[675,67],[677,68],[679,69],[681,70],[683,71],[685,72],[687,73],[689,74],[691,75],[693,76],[695,77],[697,78],[699,79],[701,80],[703,81],[705,82],[707,83],[709,84],[711,85],[713,86],[715,87],[717,88],[719,89],[721,90],[723,91],[725,92],[727,93],[729,94],[731,95],[733,96],[735,97],[737,98],[739,99],[741,100],[743,101],[745,102],[747,103],[749,104],[751,105],[753,106],[755,107],[757,108],[759,109],[797,110],[762,111],[764,112],[766,113],[768,114],[770,115],[772,116],[788,117],[792,118],[794,119],[796,120],[804,121],[799,122],[798,123],[801,124],[803,125],[823,126],[822,127],[814,128],[810,129],[808,130],[820,131],[812,132],[816,133],[806,134],[818,135],[594,136],[607,137],[606,138],[600,136],[601,136],[595,136],[596,136],[597,136],[598,136],[599,136],[603,139],[604,140],[602,139],[510,141],[506,142],[507,143],[28,144],[47,145],[45,146],[46,147],[838,148],[43,149],[50,150],[48,151],[40,152],[35,153],[34,153],[37,154],[36,155],[39,155],[306,156],[201,157],[460,158],[202,159],[474,160],[505,161],[503,162],[456,163],[464,164],[486,165],[469,166],[504,167],[473,168],[455,169],[316,170],[502,171],[494,156],[501,172],[467,173],[488,174],[487,175],[273,176],[451,177],[439,178],[69,179],[281,180],[282,181],[185,176],[283,182],[305,183],[304,184],[310,185],[279,156],[453,186],[495,187],[496,188],[475,189],[440,190],[313,191],[255,192],[454,193],[191,156],[323,156],[324,194],[265,195],[321,196],[315,197],[259,156],[250,156],[257,198],[269,156],[261,199],[260,156],[318,200],[264,201],[251,156],[270,202],[317,203],[320,204],[319,205],[267,206],[271,207],[256,207],[268,208],[314,209],[258,195],[262,156],[263,210],[272,156],[232,211],[234,212],[248,213],[252,214],[322,215],[326,216],[325,217],[328,218],[249,219],[233,220],[441,221],[303,156],[309,222],[307,223],[311,164],[312,224],[186,225],[187,226],[275,227],[278,228],[448,229],[442,230],[446,231],[450,232],[443,233],[445,234],[447,230],[444,235],[301,236],[290,237],[299,238],[329,239],[302,240],[241,241],[242,242],[289,243],[106,244],[174,245],[298,246],[288,247],[327,248],[286,249],[296,250],[240,251],[180,252],[300,253],[371,156],[295,254],[107,255],[108,244],[181,256],[292,257],[297,258],[291,259],[236,246],[382,260],[293,156],[294,261],[245,262],[374,156],[87,156],[83,156],[85,263],[84,264],[82,156],[373,156],[94,265],[95,266],[96,267],[103,268],[351,269],[90,266],[91,270],[70,271],[73,156],[479,272],[480,273],[478,156],[482,274],[477,275],[274,276],[62,277],[66,278],[77,279],[102,280],[52,281],[53,282],[71,283],[101,284],[88,285],[99,286],[100,287],[98,288],[67,289],[68,290],[231,291],[266,156],[63,292],[481,293],[253,156],[74,294],[75,295],[76,296],[78,297],[396,298],[392,299],[394,300],[391,301],[465,302],[463,303],[466,304],[484,305],[64,156],[247,306],[354,156],[366,307],[367,308],[183,309],[333,310],[365,311],[182,312],[346,313],[341,314],[200,315],[199,157],[461,316],[197,246],[353,317],[184,318],[189,156],[192,319],[193,320],[334,321],[369,322],[497,323],[375,324],[378,325],[376,156],[377,326],[379,327],[470,156],[387,328],[104,329],[105,330],[359,156],[360,156],[338,331],[355,156],[363,156],[364,332],[357,333],[362,334],[336,156],[361,179],[356,335],[81,336],[79,337],[468,338],[344,339],[345,340],[342,341],[175,342],[335,343],[368,344],[372,345],[385,346],[384,347],[476,348],[343,349],[383,350],[352,351],[491,352],[438,353],[386,354],[389,355],[330,275],[388,283],[332,356],[331,357],[390,358],[462,359],[458,356],[459,360],[457,361],[190,362],[485,363],[370,156],[380,364],[381,365],[347,366],[348,367],[349,368],[493,369],[492,370],[471,371],[839,372],[472,373],[499,374],[350,156],[340,375],[489,156],[840,376],[172,377],[203,378],[204,379],[61,380],[60,381],[173,382],[109,381],[208,383],[230,384],[207,385],[206,386],[111,387],[217,388],[212,389],[110,271],[215,390],[216,391],[113,392],[112,393],[148,394],[161,395],[162,396],[155,397],[93,230],[229,398],[164,399],[163,400],[151,401],[158,395],[227,402],[228,403],[211,404],[210,405],[153,406],[154,407],[156,408],[225,409],[221,410],[220,411],[218,412],[213,413],[159,414],[226,415],[222,416],[223,417],[224,418],[150,406],[144,419],[142,419],[137,420],[136,421],[138,422],[168,230],[170,423],[171,424],[139,425],[169,426],[114,427],[115,428],[116,429],[146,419],[145,419],[147,419],[149,430],[143,419],[133,431],[123,432],[124,271],[126,433],[127,434],[132,435],[121,271],[129,436],[130,437],[135,438],[131,439],[120,440],[122,441],[125,442],[425,443],[427,444],[414,445],[411,446],[421,447],[423,448],[409,449],[422,450],[410,451],[417,452],[436,453],[179,454],[428,455],[430,456],[435,457],[419,458],[416,459],[420,460],[429,461],[407,462],[418,463],[404,464],[398,465],[178,466],[401,467],[403,468],[177,469],[402,470],[431,471],[432,472],[437,473],[434,474],[433,475],[842,476],[134,477],[851,478],[850,479],[845,480],[846,481],[848,482],[847,482]],"exportedModulesMap":[[833,1],[837,2],[520,3],[593,4],[592,5],[526,6],[566,7],[589,8],[568,9],[587,10],[522,11],[521,12],[585,13],[530,12],[564,14],[537,15],[567,16],[527,17],[583,18],[581,12],[580,12],[579,12],[578,12],[577,12],[576,12],[575,12],[574,12],[573,19],[570,20],[572,12],[524,21],[528,12],[571,22],[563,23],[562,12],[560,12],[559,12],[558,24],[557,12],[556,12],[555,12],[554,12],[553,25],[552,12],[551,12],[550,12],[549,12],[547,26],[548,12],[545,12],[544,12],[543,12],[546,27],[542,12],[541,17],[540,28],[539,28],[538,26],[534,28],[533,28],[532,28],[531,28],[529,23],[834,29],[831,30],[830,31],[828,32],[827,33],[825,34],[760,35],[611,36],[613,37],[615,38],[617,39],[621,40],[623,41],[625,42],[627,43],[629,44],[631,45],[633,46],[635,47],[637,48],[639,49],[641,50],[643,51],[645,52],[647,53],[649,54],[651,55],[653,56],[655,57],[657,58],[659,59],[661,60],[663,61],[665,62],[667,63],[669,64],[671,65],[673,66],[675,67],[677,68],[679,69],[681,70],[683,71],[685,72],[687,73],[689,74],[691,75],[693,76],[695,77],[697,78],[699,79],[701,80],[703,81],[705,82],[707,83],[709,84],[711,85],[713,86],[715,87],[717,88],[719,89],[721,90],[723,91],[725,92],[727,93],[729,94],[731,95],[733,96],[735,97],[737,98],[739,99],[741,100],[743,101],[745,102],[747,103],[749,104],[751,105],[753,106],[755,107],[757,108],[759,109],[797,110],[762,111],[764,112],[766,113],[768,114],[770,115],[772,116],[788,117],[792,118],[794,119],[796,120],[804,121],[799,122],[798,123],[801,124],[803,125],[823,126],[822,127],[814,128],[810,129],[808,130],[820,131],[812,132],[816,133],[806,134],[818,135],[594,136],[607,137],[606,138],[600,136],[601,136],[595,136],[596,136],[597,136],[598,136],[599,136],[603,139],[604,140],[602,139],[510,141],[506,142],[507,143],[28,144],[47,145],[45,146],[46,147],[838,148],[43,149],[50,150],[48,151],[40,152],[35,153],[34,153],[37,154],[36,155],[39,155],[306,156],[201,157],[460,158],[202,159],[474,160],[505,161],[503,162],[456,163],[464,164],[486,165],[469,166],[504,167],[473,168],[455,169],[316,170],[502,171],[494,156],[501,172],[467,173],[488,174],[487,175],[273,176],[451,177],[439,178],[69,179],[281,180],[282,181],[185,176],[283,182],[305,183],[304,184],[310,185],[279,156],[453,186],[495,187],[496,188],[475,189],[440,190],[313,191],[255,192],[454,193],[191,156],[323,156],[324,194],[265,195],[321,196],[315,197],[259,156],[250,156],[257,198],[269,156],[261,199],[260,156],[318,200],[264,201],[251,156],[270,202],[317,203],[320,204],[319,205],[267,206],[271,207],[256,207],[268,208],[314,209],[258,195],[262,156],[263,210],[272,156],[232,211],[234,212],[248,213],[252,214],[322,215],[326,216],[325,217],[328,218],[249,219],[233,220],[441,221],[303,156],[309,222],[307,223],[311,164],[312,224],[186,225],[187,226],[275,227],[278,228],[448,229],[442,230],[446,231],[450,232],[443,233],[445,234],[447,230],[444,235],[301,236],[290,237],[299,238],[329,239],[302,240],[241,241],[242,242],[289,243],[106,244],[174,245],[298,246],[288,247],[327,248],[286,249],[296,250],[240,251],[180,252],[300,253],[371,156],[295,254],[107,255],[108,244],[181,256],[292,257],[297,258],[291,259],[236,246],[382,260],[293,156],[294,261],[245,262],[374,156],[87,156],[83,156],[85,263],[84,264],[82,156],[373,156],[94,265],[95,266],[96,267],[103,268],[351,269],[90,266],[91,270],[70,271],[73,156],[479,272],[480,273],[478,156],[482,274],[477,275],[274,276],[62,277],[66,278],[77,279],[102,280],[52,281],[53,282],[71,283],[101,284],[88,285],[99,286],[100,287],[98,288],[67,289],[68,290],[231,291],[266,156],[63,292],[481,293],[253,156],[74,294],[75,295],[76,296],[78,297],[396,298],[392,299],[394,300],[391,301],[465,302],[463,303],[466,304],[484,305],[64,156],[247,306],[354,156],[366,307],[367,308],[183,309],[333,310],[365,311],[182,312],[346,313],[341,314],[200,315],[199,157],[461,316],[197,246],[353,317],[184,318],[189,156],[192,319],[193,320],[334,321],[369,322],[497,323],[375,324],[378,325],[376,156],[377,326],[379,327],[470,156],[387,328],[104,329],[105,330],[359,156],[360,156],[338,331],[355,156],[363,156],[364,332],[357,333],[362,334],[336,156],[361,179],[356,335],[81,336],[79,337],[468,338],[344,339],[345,340],[342,341],[175,342],[335,343],[368,344],[372,345],[385,346],[384,347],[476,348],[343,349],[383,350],[352,351],[491,352],[438,353],[386,354],[389,355],[330,275],[388,283],[332,356],[331,357],[390,358],[462,359],[458,356],[459,360],[457,361],[190,362],[485,363],[370,156],[380,364],[381,365],[347,366],[348,367],[349,368],[493,369],[492,370],[471,371],[839,372],[472,373],[499,374],[350,156],[340,375],[489,156],[840,376],[172,377],[203,378],[204,379],[61,380],[60,381],[173,382],[109,381],[208,383],[230,384],[207,385],[206,386],[111,387],[217,388],[212,389],[110,271],[215,390],[216,391],[113,392],[112,393],[148,394],[161,395],[162,396],[155,397],[93,230],[229,398],[164,399],[163,400],[151,401],[158,395],[227,402],[228,403],[211,404],[210,405],[153,406],[154,407],[156,408],[225,409],[221,410],[220,411],[218,412],[213,413],[159,414],[226,415],[222,416],[223,417],[224,418],[150,406],[144,419],[142,419],[137,420],[136,421],[138,422],[168,230],[170,423],[171,424],[139,425],[169,426],[114,427],[115,428],[116,429],[146,419],[145,419],[147,419],[149,430],[143,419],[133,431],[123,432],[124,271],[126,433],[127,434],[132,435],[121,271],[129,436],[130,437],[135,438],[131,439],[120,440],[122,441],[125,442],[425,443],[427,444],[414,445],[411,446],[421,447],[423,448],[409,449],[422,450],[410,451],[417,452],[436,453],[179,454],[428,455],[430,456],[435,457],[419,458],[416,459],[420,460],[429,461],[407,462],[418,463],[404,464],[398,465],[178,466],[401,467],[403,468],[177,469],[402,470],[431,471],[432,472],[437,473],[434,474],[433,475],[842,476],[134,477],[851,478],[850,479],[845,480],[846,481],[848,482],[847,482]],"semanticDiagnosticsPerFile":[833,832,837,565,520,516,517,514,593,591,592,526,566,590,589,568,535,536,519,515,586,587,522,521,518,585,584,530,564,537,567,527,582,583,581,580,579,578,577,576,575,574,573,570,572,524,569,528,571,563,562,561,560,559,558,557,523,556,555,554,553,552,551,550,549,547,548,545,544,543,546,525,542,541,540,539,538,534,533,532,531,529,588,513,512,511,834,835,831,830,829,608,609,828,827,826,825,824,760,611,610,613,612,615,614,617,616,619,618,621,620,623,622,625,624,627,626,629,628,631,630,633,632,635,634,637,636,639,638,641,640,643,642,645,644,647,646,649,648,651,650,653,652,655,654,657,656,659,658,661,660,663,662,665,664,667,666,669,668,671,670,673,672,675,674,677,676,679,678,681,680,683,682,685,684,687,686,689,688,691,690,693,692,695,694,697,696,699,698,701,700,703,702,705,704,707,706,709,708,711,710,713,712,715,714,717,716,719,718,721,720,723,722,725,724,727,726,729,728,731,730,733,732,735,734,737,736,739,738,741,740,743,742,745,744,747,746,749,748,751,750,753,752,755,754,757,756,759,758,797,762,761,764,763,766,765,768,767,770,769,772,771,774,773,776,775,778,777,780,779,782,781,784,783,786,785,788,787,790,789,792,791,794,793,796,795,804,799,798,801,800,803,802,823,822,821,814,813,810,809,808,807,820,819,812,811,816,815,806,805,818,817,836,594,607,606,605,600,601,595,596,597,598,599,603,604,602,510,506,507,508,509,1,16,2,28,3,26,4,5,17,18,6,20,21,19,27,7,8,9,10,11,12,13,14,24,25,22,23,15,47,45,46,44,838,42,43,50,49,48,41,40,31,35,32,33,34,37,36,38,39,30,29,306,201,460,202,198,474,505,503,456,464,486,469,504,473,455,316,502,494,501,467,488,487,273,451,439,69,281,282,185,283,305,304,310,279,453,495,496,475,440,313,255,454,191,323,324,265,321,315,259,250,257,269,261,260,318,264,251,270,317,320,319,267,271,256,268,314,258,262,263,272,232,234,248,252,322,326,325,328,249,233,441,452,303,309,307,308,311,312,186,187,276,275,278,448,277,442,446,450,443,445,447,444,449,301,290,72,299,287,239,284,329,302,285,241,242,244,243,289,843,106,238,174,298,288,327,286,296,240,180,237,300,371,295,107,108,181,292,297,291,236,382,293,294,245,235,86,374,87,83,85,84,82,373,89,94,95,96,92,103,351,90,91,70,73,479,480,478,482,477,274,62,66,280,77,102,52,53,71,101,88,99,100,98,188,67,68,231,266,63,481,253,74,75,76,78,337,396,395,392,394,393,391,465,463,466,484,254,80,56,196,246,194,97,195,500,57,64,54,55,247,354,366,367,183,333,365,182,346,341,200,199,461,197,353,184,189,490,192,193,334,369,497,375,378,376,377,379,470,387,483,104,105,359,360,338,355,363,358,364,357,362,336,361,356,81,79,468,344,345,342,175,335,368,372,385,384,476,343,383,352,491,438,386,389,330,388,332,331,390,462,458,459,457,190,485,370,380,381,347,348,349,493,492,471,839,472,499,350,339,340,498,489,840,58,172,51,203,204,59,61,205,60,173,65,109,208,230,207,206,219,111,217,212,110,215,216,209,214,113,112,140,148,141,161,162,155,93,160,229,164,163,151,158,227,228,211,210,153,154,156,225,221,220,218,213,159,226,222,223,224,150,144,142,166,157,137,136,138,167,168,165,170,117,152,171,139,169,114,115,116,146,145,147,149,143,133,123,124,126,127,132,128,121,129,130,135,119,118,131,120,122,125,425,424,426,427,405,414,411,421,423,409,422,410,417,413,436,415,179,428,399,406,400,397,430,435,419,416,420,408,429,407,418,412,176,404,398,178,401,403,177,402,431,432,437,434,433,842,841,134,849,851,[845,[{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":34,"length":49,"messageText":"Cannot find module 'androidx.camera.lifecycle.ProcessCameraProvider' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":105,"length":30,"messageText":"Cannot find module 'androidx.camera.core.Preview' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":160,"length":33,"messageText":"Cannot find module 'androidx.camera.core.MirrorMode' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":219,"length":34,"messageText":"Cannot find module 'androidx.camera.view.PreviewView' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":431,"length":37,"messageText":"Cannot find module 'androidx.camera.core.CameraSelector' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":496,"length":36,"messageText":"Cannot find module 'androidx.camera.core.ImageAnalysis' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":559,"length":35,"messageText":"Cannot find module 'androidx.camera.core.UseCaseGroup' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":690,"length":35,"messageText":"Cannot find module 'androidx.lifecycle.LifecycleOwner' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":752,"length":35,"messageText":"Cannot find module 'androidx.camera.core.ImageCapture' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":861,"length":44,"messageText":"Cannot find module 'androidx.camera.core.ImageCaptureException' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":965,"length":33,"messageText":"Cannot find module 'androidx.camera.core.ImageProxy' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":1027,"length":36,"messageText":"Cannot find module 'androidx.camera.core.CameraControl' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":1093,"length":36,"messageText":"Cannot find module 'androidx.camera.video.VideoCapture' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":1152,"length":32,"messageText":"Cannot find module 'androidx.camera.video.Recorder' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":1208,"length":33,"messageText":"Cannot find module 'androidx.camera.video.Recording' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":1273,"length":41,"messageText":"Cannot find module 'androidx.camera.video.FileOutputOptions' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":1336,"length":31,"messageText":"Cannot find module 'androidx.camera.video.Quality' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":1397,"length":39,"messageText":"Cannot find module 'androidx.camera.video.QualitySelector' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":1467,"length":40,"messageText":"Cannot find module 'androidx.camera.video.VideoRecordEvent' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":3699,"length":12,"messageText":"Cannot find name 'UTSComponent'.","category":1,"code":2304},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":4530,"length":12,"messageText":"Cannot find name 'UTSComponent'.","category":1,"code":2304},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":5241,"length":14,"code":2339,"category":1,"messageText":"Property 'getUniActivity' does not exist on type 'UTSAndroid'."},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":5585,"length":14,"code":2339,"category":1,"messageText":"Property 'getUniActivity' does not exist on type 'UTSAndroid'."},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":7562,"length":7,"messageText":"This member cannot have an 'override' modifier because its containing class 'Analyzer' does not extend another class.","category":1,"code":4112},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":8134,"length":26,"messageText":"This member cannot have an 'override' modifier because its containing class 'Analyzer' does not extend another class.","category":1,"code":4112},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":8203,"length":14,"messageText":"Value of type 'typeof Size' is not callable. Did you mean to include 'new'?","category":1,"code":2348},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":8393,"length":14,"code":2339,"category":1,"messageText":"Property 'getUniActivity' does not exist on type 'UTSAndroid'."},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":10729,"length":15,"code":2339,"category":1,"messageText":"Property 'getAppCachePath' does not exist on type 'UTSAndroid'."},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":11321,"length":12,"messageText":"This member cannot have an 'override' modifier because its containing class 'OnImageSavedCallback' does not extend another class.","category":1,"code":4112},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":11643,"length":7,"messageText":"This member cannot have an 'override' modifier because its containing class 'OnImageSavedCallback' does not extend another class.","category":1,"code":4112},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":11841,"length":16,"messageText":"This member cannot have an 'override' modifier because its containing class 'OnImageSavedCallback' does not extend another class.","category":1,"code":4112},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":11965,"length":14,"code":2339,"category":1,"messageText":"Property 'getUniActivity' does not exist on type 'UTSAndroid'."},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":13237,"length":15,"code":2339,"category":1,"messageText":"Property 'getAppCachePath' does not exist on type 'UTSAndroid'."},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":13503,"length":14,"code":2339,"category":1,"messageText":"Property 'getUniActivity' does not exist on type 'UTSAndroid'."},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/camera.uts.ts","start":13647,"length":14,"code":2339,"category":1,"messageText":"Property 'getUniActivity' does not exist on type 'UTSAndroid'."}]],846,[848,[{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/index.uts.ts","start":5223,"length":13,"code":2339,"category":1,"messageText":"Property 'getDispatcher' does not exist on type 'UTSAndroid'."},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/index.uts.ts","start":5403,"length":13,"code":2339,"category":1,"messageText":"Property 'getDispatcher' does not exist on type 'UTSAndroid'."},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/index.uts.ts","start":5593,"length":13,"code":2339,"category":1,"messageText":"Property 'getDispatcher' does not exist on type 'UTSAndroid'."},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/index.uts.ts","start":5784,"length":13,"code":2339,"category":1,"messageText":"Property 'getDispatcher' does not exist on type 'UTSAndroid'."},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/index.uts.ts","start":5978,"length":13,"code":2339,"category":1,"messageText":"Property 'getDispatcher' does not exist on type 'UTSAndroid'."},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/index.uts.ts","start":6192,"length":13,"code":2339,"category":1,"messageText":"Property 'getDispatcher' does not exist on type 'UTSAndroid'."},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/index.uts.ts","start":6381,"length":13,"code":2339,"category":1,"messageText":"Property 'getDispatcher' does not exist on type 'UTSAndroid'."},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/index.uts.ts","start":6566,"length":13,"code":2339,"category":1,"messageText":"Property 'getDispatcher' does not exist on type 'UTSAndroid'."}]],[847,[{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/index.vue.ts","start":1021,"length":3,"code":2339,"category":1,"messageText":"Property '$el' does not exist on type '{ handler(newValue: string, _: string): void; immediate: boolean; }'."},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/index.vue.ts","start":1233,"length":3,"code":2339,"category":1,"messageText":"Property '$el' does not exist on type '{ handler(newValue: string, _: string): void; immediate: boolean; }'."},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/index.vue.ts","start":1900,"length":15,"code":2339,"category":1,"messageText":"Property '$androidContext' does not exist on type '{ name: string; emits: string[]; props: { mode: { type: StringConstructor; default: string; }; resolution: { type: StringConstructor; default: string; }; position: { ...; }; flash: { ...; }; frameSize: { ...; }; }; ... 11 more ...; unmounted(): void; }'."},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/index.vue.ts","start":2173,"length":3,"code":2339,"category":1,"messageText":"Property '$el' does not exist on type '{ name: string; emits: string[]; props: { mode: { type: StringConstructor; default: string; }; resolution: { type: StringConstructor; default: string; }; position: { ...; }; flash: { ...; }; frameSize: { ...; }; }; ... 11 more ...; unmounted(): void; }'."},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/index.vue.ts","start":2212,"length":10,"code":2339,"category":1,"messageText":"Property 'resolution' does not exist on type '{ name: string; emits: string[]; props: { mode: { type: StringConstructor; default: string; }; resolution: { type: StringConstructor; default: string; }; position: { ...; }; flash: { ...; }; frameSize: { ...; }; }; ... 11 more ...; unmounted(): void; }'."},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/index.vue.ts","start":2245,"length":9,"code":2339,"category":1,"messageText":"Property 'frameSize' does not exist on type '{ name: string; emits: string[]; props: { mode: { type: StringConstructor; default: string; }; resolution: { type: StringConstructor; default: string; }; position: { ...; }; flash: { ...; }; frameSize: { ...; }; }; ... 11 more ...; unmounted(): void; }'."},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/index.vue.ts","start":2273,"length":5,"code":2339,"category":1,"messageText":"Property 'flash' does not exist on type '{ name: string; emits: string[]; props: { mode: { type: StringConstructor; default: string; }; resolution: { type: StringConstructor; default: string; }; position: { ...; }; flash: { ...; }; frameSize: { ...; }; }; ... 11 more ...; unmounted(): void; }'."},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/index.vue.ts","start":2311,"length":3,"code":2339,"category":1,"messageText":"Property '$el' does not exist on type '{ name: string; emits: string[]; props: { mode: { type: StringConstructor; default: string; }; resolution: { type: StringConstructor; default: string; }; position: { ...; }; flash: { ...; }; frameSize: { ...; }; }; ... 11 more ...; unmounted(): void; }'."},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/index.vue.ts","start":2334,"length":8,"code":2339,"category":1,"messageText":"Property 'position' does not exist on type '{ name: string; emits: string[]; props: { mode: { type: StringConstructor; default: string; }; resolution: { type: StringConstructor; default: string; }; position: { ...; }; flash: { ...; }; frameSize: { ...; }; }; ... 11 more ...; unmounted(): void; }'."},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/index.vue.ts","start":2462,"length":5,"code":2551,"category":1,"messageText":"Property '$emit' does not exist on type '{ name: string; emits: string[]; props: { mode: { type: StringConstructor; default: string; }; resolution: { type: StringConstructor; default: string; }; position: { ...; }; flash: { ...; }; frameSize: { ...; }; }; ... 11 more ...; unmounted(): void; }'. Did you mean 'emits'?","relatedInformation":[{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/index.vue.ts","start":303,"length":33,"messageText":"'emits' is declared here.","category":3,"code":2728}]},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/skin-camerauts/utssdk/app-android/index.vue.ts","start":2492,"length":3,"code":2339,"category":1,"messageText":"Property '$el' does not exist on type '{ name: string; emits: string[]; props: { mode: { type: StringConstructor; default: string; }; resolution: { type: StringConstructor; default: string; }; position: { ...; }; flash: { ...; }; frameSize: { ...; }; }; ... 11 more ...; unmounted(): void; }'."}]],844]},"version":"5.2.2"}
\ No newline at end of file
diff --git a/unpackage/cache/.app-ios/.uts2js/cache/uts_d5a71873c922e0fcae41e0aa47f04aa075e5c570/code/cache/0f917e9455e7a24745dae5a329fde023c0427397 b/unpackage/cache/.app-ios/.uts2js/cache/uts_d5a71873c922e0fcae41e0aa47f04aa075e5c570/code/cache/0f917e9455e7a24745dae5a329fde023c0427397
deleted file mode 100644
index be12d84..0000000
--- a/unpackage/cache/.app-ios/.uts2js/cache/uts_d5a71873c922e0fcae41e0aa47f04aa075e5c570/code/cache/0f917e9455e7a24745dae5a329fde023c0427397
+++ /dev/null
@@ -1 +0,0 @@
-{"code":"import {} from \"vue\";\nexport default defineComponent({\n onLaunch() {\n uni.__log__('log', 'at App.uvue:7', 'App Launch');\n },\n onShow() {\n uni.__log__('log', 'at App.uvue:10', 'App Show');\n },\n onHide() {\n uni.__log__('log', 'at App.uvue:13', 'App Hide');\n },\n onExit() {\n uni.__log__('log', 'at App.uvue:34', 'App Exit');\n },\n});\n//# sourceMappingURL=/Users/feast/Documents/CameraProj/SkinCamera/App.uvue?vue&type=script&lang.uts.js.map","references":[],"uniExtApis":["uni.__log__"],"map":"{\"version\":3,\"file\":\"App.uvue?vue&type=script&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"App.uvue?vue&type=script&lang.uts\"],\"names\":[],\"mappings\":\";AAIC,+BAAe;IACd,QAAQ;QACP,GAAG,CAAC,OAAO,CAAC,KAAK,EAAC,eAAe,EAAC,YAAY,CAAC,CAAA;IAChD,CAAC;IACD,MAAM;QACL,GAAG,CAAC,OAAO,CAAC,KAAK,EAAC,gBAAgB,EAAC,UAAU,CAAC,CAAA;IAC/C,CAAC;IACD,MAAM;QACL,GAAG,CAAC,OAAO,CAAC,KAAK,EAAC,gBAAgB,EAAC,UAAU,CAAC,CAAA;IAC/C,CAAC;IAmBD,MAAM;QACL,GAAG,CAAC,OAAO,CAAC,KAAK,EAAC,gBAAgB,EAAC,UAAU,CAAC,CAAA;IAC/C,CAAC;CACD,EAAA\"}"}
diff --git a/unpackage/cache/.app-ios/.uts2js/cache/uts_d5a71873c922e0fcae41e0aa47f04aa075e5c570/code/cache/b5f8c8d4c843bfb8b2baa6017effde1461d245b2 b/unpackage/cache/.app-ios/.uts2js/cache/uts_d5a71873c922e0fcae41e0aa47f04aa075e5c570/code/cache/b5f8c8d4c843bfb8b2baa6017effde1461d245b2
deleted file mode 100644
index c990501..0000000
--- a/unpackage/cache/.app-ios/.uts2js/cache/uts_d5a71873c922e0fcae41e0aa47f04aa075e5c570/code/cache/b5f8c8d4c843bfb8b2baa6017effde1461d245b2
+++ /dev/null
@@ -1 +0,0 @@
-{"code":"import { defineComponent } from \"vue\";\nimport { takePhoto } from '@/uni_modules/Skin-cameraUTS';\nexport default defineComponent({\n data() {\n return {\n yanse: \"red\",\n widthNum: 750,\n heightNum: 200,\n flash: \"on\",\n device: \"front\",\n imagePath: \"\",\n videoPath: \"https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/2minute-demo.mp4\"\n };\n },\n onLoad() {\n // let permissionNeed = [\"android.permission.CAMERA\", \"android.permission.RECORD_AUDIO\",\n // \t\t\t\t\t\"android.permission.WRITE_EXTERNAL_STORAGE\"]\n // // 请求权限\n // UTSAndroid.requestSystemPermission(UTSAndroid.getUniActivity()!, permissionNeed, function (allRight : boolean, _ : string[]) {\n // \tif (allRight) {\n // \t\t// 权限请求成功\n // \t} else {\n // \t\t//用户拒绝了部分权限\n // \t}\n // }, function (_ : boolean, _ : string[]) {\n // \t//用户拒绝了部分权限\n // })\n },\n methods: {\n onError(res = null) {\n uni.__log__('log', 'at pages/index/index.uvue:54', res);\n },\n _takePhoto() {\n takePhoto({\n success: (res = null) => {\n uni.__log__('log', 'at pages/index/index.uvue:59', 'takePhoto', res);\n this.imagePath = res.tempImagePath;\n // _previewImage();\n },\n fail: (res = null) => {\n uni.__log__('log', 'at pages/index/index.uvue:64', 'takePhoto', res);\n }\n });\n }\n }\n});\n//# sourceMappingURL=/Users/feast/Documents/CameraProj/SkinCamera/pages/index/index.uvue?vue&type=script&lang.uts.js.map","references":[],"uniExtApis":["uni.__log__"],"map":"{\"version\":3,\"file\":\"index.uvue?vue&type=script&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"index.uvue?vue&type=script&lang.uts\"],\"names\":[],\"mappings\":\";AACC,OAAO,EACN,SAAS,EAIT,MAAM,8BAA8B,CAAA;AAGrC,+BAAe;IACd,IAAI;QACH,OAAO;YACN,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,GAAG;YACb,SAAS,EAAE,GAAG;YAEd,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,OAAO;YACf,SAAS,EAAE,EAAE;YACb,SAAS,EAAE,mEAAmE;SAC9E,CAAA;IACF,CAAC;IACD,MAAM;QACL,wFAAwF;QACxF,oDAAoD;QACpD,UAAU;QACV,iIAAiI;QACjI,mBAAmB;QACnB,cAAc;QACd,YAAY;QACZ,gBAAgB;QAChB,KAAK;QACL,4CAA4C;QAC5C,eAAe;QACf,KAAK;IACN,CAAC;IACD,OAAO,EAAE;QACR,OAAO,CAAC,UAAS;YAChB,GAAG,CAAC,OAAO,CAAC,KAAK,EAAC,8BAA8B,EAAC,GAAG,CAAC,CAAA;QACtD,CAAC;QACD,UAAU;YACT,SAAS,CAAC;gBACT,OAAO,EAAE,CAAC,UAAoC;oBAC7C,GAAG,CAAC,OAAO,CAAC,KAAK,EAAC,8BAA8B,EAAC,WAAW,EAAE,GAAG,CAAC,CAAA;oBAClE,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,aAAa,CAAC;oBACnC,mBAAmB;gBACpB,CAAC;gBACD,IAAI,EAAE,CAAC,UAA2B;oBACjC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAC,8BAA8B,EAAC,WAAW,EAAE,GAAG,CAAC,CAAA;gBACnE,CAAC;aACkB,CAAC,CAAA;QACtB,CAAC;KACD;CACD,EAAA\"}"}
diff --git a/unpackage/cache/.app-ios/.uts2js/cache/uts_d5a71873c922e0fcae41e0aa47f04aa075e5c570/code/cache/f0f2b82caece87d435f53d34021ba5ca75345a55 b/unpackage/cache/.app-ios/.uts2js/cache/uts_d5a71873c922e0fcae41e0aa47f04aa075e5c570/code/cache/f0f2b82caece87d435f53d34021ba5ca75345a55
deleted file mode 100644
index 6bfbdbd..0000000
--- a/unpackage/cache/.app-ios/.uts2js/cache/uts_d5a71873c922e0fcae41e0aa47f04aa075e5c570/code/cache/f0f2b82caece87d435f53d34021ba5ca75345a55
+++ /dev/null
@@ -1 +0,0 @@
-{"code":"import './manifest-json-uts';\nimport './pages-json-uts';\nconst __global__ = typeof globalThis === 'undefined' ? Function('return this')() : globalThis;\n__global__.__uniX = true;\nimport App from './App.uvue';\nimport { createSSRApp } from 'vue';\nexport function createApp() {\n const app = createSSRApp(App);\n return {\n app\n };\n}\ncreateApp().app.mount(\"#app\");\n//# sourceMappingURL=/Users/feast/Documents/CameraProj/SkinCamera/main.uts.js.map","references":["/Users/feast/Documents/CameraProj/SkinCamera/App.uvue.ts","/Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":[],"map":"{\"version\":3,\"file\":\"main.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"main.uts\"],\"names\":[],\"mappings\":\"AACU,OAAO,qBAAqB,CAAA;AAC5B,OAAO,kBAAkB,CAAA;AACzB,MAAM,UAAU,GAAG,OAAO,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAA;AAC7F,UAAU,CAAC,MAAM,GAAG,IAAI,CAAA;AACxB,OAAO,GAAG,MAAM,YAAY,CAAA;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,KAAK,CAAA;AAClC,MAAM,UAAU,SAAS;IACxB,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;IAC7B,OAAO;QACN,GAAG;KACH,CAAA;AACF,CAAC;AACS,SAAS,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC\"}"}
diff --git a/unpackage/cache/.app-ios/.uts2js/cache/uts_d5a71873c922e0fcae41e0aa47f04aa075e5c570/types/cache/7200c4bcf9e969f70f03812bd366b3d734d1122a b/unpackage/cache/.app-ios/.uts2js/cache/uts_d5a71873c922e0fcae41e0aa47f04aa075e5c570/types/cache/7200c4bcf9e969f70f03812bd366b3d734d1122a
deleted file mode 100644
index e69de29..0000000
diff --git a/unpackage/cache/.app-ios/.uts2js/cache/uts_d5a71873c922e0fcae41e0aa47f04aa075e5c570/types/cache/83aae6f2aa0fad95368441ff5210f0a459efb2c4 b/unpackage/cache/.app-ios/.uts2js/cache/uts_d5a71873c922e0fcae41e0aa47f04aa075e5c570/types/cache/83aae6f2aa0fad95368441ff5210f0a459efb2c4
deleted file mode 100644
index e69de29..0000000
diff --git a/unpackage/cache/.app-ios/.uts2js/cache/uts_d5a71873c922e0fcae41e0aa47f04aa075e5c570/types/cache/acfc2616a77312cb09dee2e3db2cbeb07a38a971 b/unpackage/cache/.app-ios/.uts2js/cache/uts_d5a71873c922e0fcae41e0aa47f04aa075e5c570/types/cache/acfc2616a77312cb09dee2e3db2cbeb07a38a971
deleted file mode 100644
index e69de29..0000000
diff --git a/unpackage/cache/.app-ios/.uts2js/cache/uts_d5a71873c922e0fcae41e0aa47f04aa075e5c570/types/cache/b458d90319a830469795f326aa35e0b97b47d1b3 b/unpackage/cache/.app-ios/.uts2js/cache/uts_d5a71873c922e0fcae41e0aa47f04aa075e5c570/types/cache/b458d90319a830469795f326aa35e0b97b47d1b3
deleted file mode 100644
index e69de29..0000000
diff --git a/unpackage/cache/.app-ios/.uts2js/cache/uts_d5a71873c922e0fcae41e0aa47f04aa075e5c570/types/cache/e2ffc3e8321ee98d5c76216b69d66d9fa0bdcc7b b/unpackage/cache/.app-ios/.uts2js/cache/uts_d5a71873c922e0fcae41e0aa47f04aa075e5c570/types/cache/e2ffc3e8321ee98d5c76216b69d66d9fa0bdcc7b
deleted file mode 100644
index e69de29..0000000
diff --git a/unpackage/cache/.app-ios/.uts2js/cache/uts_d5a71873c922e0fcae41e0aa47f04aa075e5c570/types/cache/e62cae6a52fedd1ce867fc2a20508b0a66321d79 b/unpackage/cache/.app-ios/.uts2js/cache/uts_d5a71873c922e0fcae41e0aa47f04aa075e5c570/types/cache/e62cae6a52fedd1ce867fc2a20508b0a66321d79
deleted file mode 100644
index e69de29..0000000
diff --git a/unpackage/cache/.app-ios/sourcemap/app-service.js.map b/unpackage/cache/.app-ios/sourcemap/app-service.js.map
deleted file mode 100644
index 880edc9..0000000
--- a/unpackage/cache/.app-ios/sourcemap/app-service.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"app-service.js","sources":["uni_modules/Skin-cameraUTS?uts-proxy","pages/index/index.uvue","App.uvue"],"sourcesContent":["","\n\n\t\n\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\n\n\n\n\n\n","\r\n\r\n"],"names":["defineComponent"],"mappings":";;AACA,QAAM,EAAE,sBAAsB,mBAAmB,sBAAsB,oBAAoB,uBAAuB,iBAAgB,IAAK;AACvI,QAAM,OAAO;AACb,QAAM,aAAa;AACnB,QAAM,aAAa;AACnB,QAAM,SAAS;AACf,QAAM,iBAAiB;AACvB,QAAM,MAAoB,mCAAmB,MAAM,cAAc;AACjE,QAAM,MAAoB,sCAAsB,MAAM,cAAc;AAE7D,QAAM,oBAAoB,CAAE;AAG5B,QAAM,YAA0B,qCAAqB,OAAO,EAAE,YAAY,YAAY,QAAQ,MAAM,MAAM,SAAS,KAAK,OAAO,KAAK,MAAM,iBAAiB,WAAW,OAAO,QAAQ,CAAC,EAAC,QAAO,WAAU,QAAO,sDAAqD,CAAC,GAAG,QAAQ,GAAE,CAAC;;;;ACWzR,QAAA,cAAeA,oBAAA;AAAA,IACd,OAAI;AACH,aAAO;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,QACV,WAAW;AAAA,QAEX,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,WAAW;AAAA;IAEZ;AAAA,IACD,SAAM;AAAA,IAaL;AAAA,IACD,SAAS;AAAA,MACR,QAAQ,MAAS,MAAA;AAChB,YAAI,QAAQ,OAAM,gCAA+B,GAAG;AAAA,MACpD;AAAA,MACD,aAAU;AACT,kBAAU;AAAA,UACT,SAAS,CAAC,MAAoC,SAAA;AAC7C,gBAAI,QAAQ,OAAM,gCAA+B,aAAa,GAAG;AACjE,iBAAK,YAAY,IAAI;AAAA,UAErB;AAAA,UACD,MAAM,CAAC,MAA2B,SAAA;AACjC,gBAAI,QAAQ,OAAM,gCAA+B,aAAa,GAAG;AAAA,UAClE;AAAA,QACmB,CAAA;AAAA,MACrB;AAAA,IACD;AAAA,GACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChEA,QAAA,YAAeA,oBAAA;AAAA,IACd,WAAQ;AACP,UAAI,QAAQ,OAAM,iBAAgB,YAAY;AAAA,IAC9C;AAAA,IACD,SAAM;AACL,UAAI,QAAQ,OAAM,kBAAiB,UAAU;AAAA,IAC7C;AAAA,IACD,SAAM;AACL,UAAI,QAAQ,OAAM,kBAAiB,UAAU;AAAA,IAC7C;AAAA,IAmBD,SAAM;AACL,UAAI,QAAQ,OAAM,kBAAiB,UAAU;AAAA,IAC7C;AAAA,GACF;;;;;;;;;;;;;","sourceRoot":"/Users/feast/Documents/CameraProj/SkinCamera"}
\ No newline at end of file
diff --git a/unpackage/cache/.app-ios/tsc/app-ios/.tsbuildInfo b/unpackage/cache/.app-ios/tsc/app-ios/.tsbuildInfo
deleted file mode 100644
index 3ab4878..0000000
--- a/unpackage/cache/.app-ios/tsc/app-ios/.tsbuildInfo
+++ /dev/null
@@ -1 +0,0 @@
-{"program":{"fileNames":["../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/boolean.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/console.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/date.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/error.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/json.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/map.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/math.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/number.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/regexp.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/set.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/string.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/timers.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/utsjsonobject.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/arraybuffer.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/float32array.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/float64array.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/int8array.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/int16array.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/int32array.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/uint8array.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/uint8clampedarray.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/uint16array.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/uint32array.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/dataview.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/iterable.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/common.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/shims.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es5.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2015.collection.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2015.promise.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2015.symbol.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2015.symbol.wellknown.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2015.iterable.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2018.asynciterable.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2018.asyncgenerator.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2018.promise.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2020.symbol.wellknown.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/index.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/index.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/hbuilder-x/hbuilderx.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/hbuilder-x/index.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/@vue/shared/dist/shared.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/@vue/reactivity/dist/reactivity.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/@vue/runtime-core/dist/runtime-core.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/@vue/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/vue.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/shims/common.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/app-ios/utsios.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/app-ios/utsioshookproxy.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/app-js/utsjs.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/app-ios/index.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/worker.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/webviewstyles.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/viewtotempfilepathoptions.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/drawablecontext.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/snapshotoptions.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/cssstyledeclaration.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/domrect.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unicallbackwrapper.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/path2d.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/canvasrenderingcontext2d.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unianimationplaybackevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unianimation.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unisafeareainsets.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unipage.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitextlayout.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/iunielement.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unievent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unipageevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewservicemessageevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unicustomevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewmessageevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewloadingevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewloadevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewerrorevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/nodedata.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/pagenode.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unielement.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewelement.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewdownloadevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewcontentheightchangeevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/univideoelement.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitouchevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitextarealinechangeevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitextareafocusevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitextareablurevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitextelement.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitabselement.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitabtapevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniswipertransitionevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniswiperchangeevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniswiperanimationfinishevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unistopnestedscrollevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unistartnestedscrollevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniscrolltoupperevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniscrolltolowerevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniscrollevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unirichtextitemclickevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniresizeobserver.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniresizeevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unirefresherevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniprovider.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unipointerevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unipagescrollevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unidocument.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/asyncapiresult.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/iunierror.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unierror.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/nativeloadfontfaceoptions.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unipagebody.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uninativepage.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unipagemanager.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uninestedprescrollevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uninativeapp.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniinputkeyboardheightchangeevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniinputfocusevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniinputevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniinputconfirmevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniinputchangeevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniinputblurevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniimageloadevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniimageerrorevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniformcontrol.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniformcontrolelement.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unicustomelement.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unicanvaselement.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/sourceerror.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniaggregateerror.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/utsandroidhookproxy.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/iuninativeviewelement.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/iuniform.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/inavigationbar.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/index.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/checkboxgroupchangeevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/pickerviewchangeevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/progressactiveendevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/radiogroupchangeevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/sliderchangeevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/switchchangeevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/pickerchangeevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/pickercolumnchangeevent.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/uninavigatorelement.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/uniclouddbelement.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/uniformelement.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/lifecycle.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/index.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/base/index.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/env/index.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-actionsheet/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-actionsheet/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-addphonecontact/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-addphonecontact/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-arraybuffertobase64/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-arraybuffertobase64/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-authentication/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-authentication/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-barcode-scanning/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-barcode-scanning/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-base64toarraybuffer/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-base64toarraybuffer/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-chooselocation/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-chooselocation/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-choosemedia/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-choosemedia/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-clipboard/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-clipboard/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createinneraudiocontext/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createinneraudiocontext/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createintersectionobserver/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createintersectionobserver/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createrequestpermissionlistener/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createrequestpermissionlistener/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createselectorquery/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createselectorquery/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createwebviewcontext/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createwebviewcontext/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createworker/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createworker/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-dialogpage/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-dialogpage/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-event/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-event/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-exit/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-exit/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-file/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-file/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-filesystemmanager/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-filesystemmanager/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getaccessibilityinfo/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getaccessibilityinfo/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getappauthorizesetting/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getappauthorizesetting/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getappbaseinfo/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getappbaseinfo/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getbackgroundaudiomanager/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getbackgroundaudiomanager/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getdeviceinfo/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getdeviceinfo/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getelementbyid/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getelementbyid/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getenteroptionssync/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getenteroptionssync/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getlaunchoptionssync/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getlaunchoptionssync/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getlocation-tencent-uni1/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getlocation-tencent-uni1/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getnetworktype/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getnetworktype/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getperformance/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getperformance/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getprovider/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getprovider/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getsysteminfo/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getsysteminfo/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getsystemsetting/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getsystemsetting/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-installapk/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-installapk/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-interceptor/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-interceptor/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-keyboard/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-keyboard/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-loadfontface/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-loadfontface/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-location-system/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-location-system/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-location-tencent/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-location-tencent/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-location/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-location/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-makephonecall/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-makephonecall/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-media/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-media/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-modal/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-modal/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-navigationbar/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-navigationbar/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-network/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-network/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-oauth-huawei/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-oauth-huawei/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-oauth-weixin/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-oauth-weixin/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-oauth/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-oauth/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-openappauthorizesetting/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-openappauthorizesetting/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-opendocument/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-opendocument/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-pagescrollto/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-pagescrollto/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment-alipay/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment-alipay/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment-huawei/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment-huawei/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment-wxpay/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment-wxpay/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-previewimage/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-previewimage/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-privacy/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-privacy/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-prompt/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-prompt/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-pulldownrefresh/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-pulldownrefresh/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-recorder/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-recorder/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-requestmerchanttransfer/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-requestmerchanttransfer/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-route/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-route/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-rpx2px/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-rpx2px/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-scancode/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-scancode/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-screenbrightness/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-screenbrightness/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-share-weixin/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-share-weixin/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-share/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-share/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-sharewithsystem/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-sharewithsystem/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-sse/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-sse/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-storage/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-storage/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-tabbar/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-tabbar/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-theme/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-theme/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-virtualpayment/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-virtualpayment/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-websocket/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-websocket/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-ad/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-ad/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-crash/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-crash/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-facialverify/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-facialverify/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-live-player/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-live-player/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-live-pusher/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-live-pusher/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-map-tencent/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-map-tencent/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-fcm/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-fcm/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-gp/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-gp/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-hms/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-hms/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-honor/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-honor/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-mainland/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-mainland/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-meizu/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-meizu/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-oppo/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-oppo/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-vivo/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-vivo/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-xiaomi/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-xiaomi/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-secure-network/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-secure-network/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-verify/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-verify/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/lib/uni-camera/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/lib/uni-camera/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/lib/uni-canvas/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/lib/uni-canvas/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/lib/uni-video/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/lib/uni-video/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-openlocation/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-openlocation/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-compass/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-compass/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-canvas/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-canvas/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-locale/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-locale/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-accelerometer/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-accelerometer/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-memory/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-memory/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-preloadpage/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-preloadpage/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-createmediaqueryobserver/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-createmediaqueryobserver/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-__f__/utssdk/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-__f__/utssdk/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uni-map-tencent-map.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uni-map-tencent-global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uni-camera.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uni-camera-global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/global.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni-cloud/unicloud-db/index.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni-cloud/interface.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni-cloud/index.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/common.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/app.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/page.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/process.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vite.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/index.d.ts","../../../../../../../../../../applications/hbuilderx.app/contents/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/app-ios.d.ts","../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/interface.uts.ts","../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/cameramanager.uts.ts","../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/index.vue.ts","../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/index.uts.ts"],"fileInfos":[{"version":"6e80ad2ee01e6eea8837f649d0b91002724ec74cef9b3d2b5fda718b14fc6ec9","affectsGlobalScope":true},{"version":"87e0a7f9366dc80be7b72c6d0a6e23c4f68cd2b96c90edd3da8082bfdd237af9","affectsGlobalScope":true},{"version":"2c44751aff2b2161d0450df9812bb5114ba050a522e1d5fa67f66649d678fcb4","affectsGlobalScope":true},{"version":"68566331a40bef8710069a7f5ac951543c5653c1c3fa8cc3a54c95753abbcf7a","affectsGlobalScope":true},{"version":"173b34be3df2099c2da11fb3ceecf87e883bd64f5219c0ee7bc6add9bc812cde","affectsGlobalScope":true},{"version":"9c867cbb4270f3c93a0ffaa8840b3034033a95025cd4f6bf9989ecb7b7c54a4e","affectsGlobalScope":true},{"version":"6d41c5eb02906006bad04d0ba26eafc1b10c433760b9209f4dbb7af1b8231071","affectsGlobalScope":true},{"version":"7b435c510e94d33c438626dff7d8df57d20d69f6599ba461c46fc87b8c572bce","affectsGlobalScope":true},{"version":"25f08344cf6121c92864c9f22b22ab6574001771eb1d75843006938c11f7d4ab","affectsGlobalScope":true},{"version":"f955119e78143380da1b952b56ab8ca46e10776d17e0a748678729086b0fae49","affectsGlobalScope":true},{"version":"b15b894ea3a5bcdfd96e2160e10f71ea6db8563804bbaa4cdf3b86a21c7e7da0","affectsGlobalScope":true},{"version":"db491a26fb6bb04dd6c9aecbe3803dd94c1e5d3dd839ffed552ffaf4e419871a","affectsGlobalScope":true},{"version":"463cb70eebbf68046eba623ed570e54c425ea29d46d7476da84134722a6d155b","affectsGlobalScope":true},{"version":"a7cca769cf6ecd24d991ae00ac9715b012cae512f27d569513eb2e47fc8ef952","affectsGlobalScope":true},{"version":"d27811b28326ce496b3a0810a4b38d9391e929b150d9d8b881a562c9c9d666c0","affectsGlobalScope":true},{"version":"0aca09a3a690438ac20a824d8236bfdb84e4035724e77073c7f144b18339ec65","affectsGlobalScope":true},{"version":"0f844aa90d79ff631b051f5ee8540a8936d48c39914c910e89e7b7949bbac865","affectsGlobalScope":true},{"version":"0fbf8b372e8d8349a3b5a1f470bb7897272bb43aa88066e50dce25fde261cd93","affectsGlobalScope":true},{"version":"0ef38eeb51b042d85f64103ec93a37ba8683a31c22fdfd76c69852e982aa08c6","affectsGlobalScope":true},{"version":"9652d98559378167cb1f4eb57e51119e4fef5861d18c5928c6bae207b80adfe3","affectsGlobalScope":true},{"version":"7c1cfb70557e907294946a14c5eba189f77d5e9dfe7f02832ee5c6f3f34dc4d5","affectsGlobalScope":true},{"version":"baa7e3434cefa49e8965ea72a0c26fe056b2e9d978ac2bb3abd204fcd6c4fc0d","affectsGlobalScope":true},{"version":"aca5b50919b30253d6db79ecb92848d8dae72c7998df1454a19e21dd633a75b1","affectsGlobalScope":true},{"version":"016e96968aee1fb6804200c75a11e876371536a98e772cb55ffbf482ddbd8822","affectsGlobalScope":true},{"version":"4567cbd464d15226a40a5b3d671e20665aa070a2c4fa3f4682700f563f9ab730","affectsGlobalScope":true},{"version":"bfea9c54c2142652e7f2f09b7b395c57f3e7650fb2981d9f183de9eeae8a1487","affectsGlobalScope":true},{"version":"5b4344f074c83584664e93d170e99db772577f7ced22b73deaf3cfb798a76958","affectsGlobalScope":true},"db8eb85d3f5c85cc8b2b051fde29f227ec8fbe50fd53c0dc5fc7a35b0209de4a",{"version":"a40c58a6b116c6be65fa18892baa003de697e8bb588738086eeb66767086d795","affectsGlobalScope":true},{"version":"93d5d3abbc921afca6c084cfc8eff9a4ce39a2f8444f49984e5ae9242346676b","affectsGlobalScope":true},{"version":"b3c68a2799ae071e2cb60df38a22a44e2bc8875c03b58a84ca500af60e23770e","affectsGlobalScope":true},{"version":"a46622c46620d4dfe66fa8953348a4c0788b7a6773ad38fdec7af31643997eb9","affectsGlobalScope":true},{"version":"2e44c5149ca592f354a625e685feb2ba572edc16938c909d8d08670a78cce004","affectsGlobalScope":true},{"version":"8a0d41bfa6df25a73dbcf0d3a2cf3977709816dc916e7d94e6ca4c92ff405cee","affectsGlobalScope":true},{"version":"46906cc6e235f0fd29f2014f46416a3cb5328888c0f72677a44329235bdb98bf","affectsGlobalScope":true},{"version":"b5f7531cbb9bc05d7512a44929944e20f86da88059f9e91b551bcb7031233f14","affectsGlobalScope":true},{"version":"c3af388ae7dc7da32b83299506e302fb66b6471e17bc270a3a4779655710f74f","affectsGlobalScope":true},{"version":"194e09f34e64f1c9458d2a2e0281752ce194a4e67408c6eda4c171276c6a543d","affectsGlobalScope":true},{"version":"530ab35b2cef5150ec75e6c3d57c535ef7d9be55bdbc4cd24b9572d468bcb16a","affectsGlobalScope":true},"e79f3f68452f3f00ffaf4d89f79ee18b4f6c8635383b1f0a514f1a126ac37345","465c0d2284773bd856e497cd50f5ad893a4f44b739b2288b12480196ff05dcf8",{"version":"12b835d3220c33d4c7c07382634f8955fe10cc79e043fadcc7bdbc083babbaa5","affectsGlobalScope":true},"e11bab81f0ae2021975aff038d7c1a5cf6e939ca8b986976c852f282cddecc0a","9beaee2b53baa1010bad7be0a31a12728d8fb422bd1bc8c48c3359ff88ec21bf","42322f0e58664a19a751214a59372614e1aa6a2559216ebb9ed9e0a8387b00fb",{"version":"20b64aa31bc7e9652209bc4abdd4f82723b247847f8f2a92aa84a8f74db6f976","affectsGlobalScope":true},{"version":"9ab1efa7e8640d8b5efc0dd503b6458f8e9e4182fe67160a05bc124472886d20","affectsGlobalScope":true},{"version":"fb4983fc9d1824996c4c36d414ef0d4ad714c3c09aaceb6743bce45fae91dcb3","affectsGlobalScope":true},{"version":"3563038fd2b36ecea3f3de752ebb708b59ef78bb4a01a281cacc7fe346b5e345","affectsGlobalScope":true},{"version":"715a737d31758f8986540b50de5c349f13e1f2302a3ec0a25dccb9c764015338","affectsGlobalScope":true},"4aa419dfdb3704650808b0ae569258d9f4ed4b0da0fbedf7c59f3300b3ce038a",{"version":"b9241ecb5024beeaeb98fb558000dbc55e650576e572d194508f52807af6bcba","affectsGlobalScope":true},"57254dac9873cfaf8e1b6aa58a3ef928ca9ef3f9e2bc7265e249d7f8ce802e34","2e5ac0dd461b94010e16057c26d281841e3a935df927d76123b6864880086a26","b911176e7778c30f6549f86daae0353c53730eb0ee59b6476f1072cb51ab1af3","f8cc7ac396a3ea99a6959ddbaf883388260e035721216e5971af17db61f11f0b","895bedc6daf4f0da611480f24f65df818ea9e01404e4bf5927043dbf4eeed4d1","ea4facc7918e50e285a4419f7bc7ffdf978385899a3cf19ef7d7b782b896616d","8db893a4613484d4036337ffea6a5b675624518ad34597a8df255379802001ab","5828081db18ff2832ce9c56cc87f192bcc4df6378a03318775a40a775a824623","33b7db19877cf2f9306524371fcfc45dcb6436c8e905472ede7346c9f044bf20","b8eb76852bc6e72782541a2725580b1c3df02a0c96db570b0a7681567aeed598","6a7b38162c0cff2af6d2cbd4a98cfac6c0ea4fb1b5700c42f648de9b8c2e8e1f","19828d5df3be9b94598e5c25d783b936fcccaa226a2820bacee9ea94dc8aff2f","5d45955831c840d09b502ce6726a06435866b4736978e235a7d817ed45990df7","3bdf7ca46ef934ee671b3dd0e3d4cddcaecfe6146811b330743acdfb8e60f36c","70dab20ce12f8d153044fc487f2bfd40d21fc64329446f02c6a94b9759c13265","c1eed15acf77bbaa4a4840edbdcf70ff2f3c2a0f5af498578ce020e2f2c73f7f","71943244e9813364dac70c5be97fdce7bc775c96bb212d97a60ba072344dcbbc","6f1fa6fc9b169b165be0d8550a3ca0b5181af0c41e4e1e15f5e6bcb2a6e1c344","e311e90ded1cd037cbece1bc6649eaa7b65f4346c94ae81ba5441a8f9df93fa3","8eb08fff3569e1b9eddb72e9541a21e9a88b0c069945e8618e9bc75074048249","d596c650714d80a93a2fe15dce31ed9a77c2f2b1b9f4540684eaf271f05e2691","8f9fb9a9d72997c334ca96106095da778555f81ac31f1d2a9534d187b94e8bf6","aea632713de6ee4a86e99873486c807d3104c2bf704acef8d9c2567d0d073301","1adb14a91196aa7104b1f3d108533771182dc7aaea5d636921bc0f812cfee5f5","8d90bb23d4e2a4708dbf507b721c1a63f3abd12d836e22e418011a5f37767665","8cb0d02bb611ea5e97884deb11d6177eb919f52703f0e8060d4f190c97bb3f6c","78880fa8d163b58c156843fda943cc029c80fac5fb769724125db8e884dce32d","7856bc6f351d5439a07d4b23950aa060ea972fd98cbc5add0ad94bfc815f4c4c","ce379fb42f8ba7812c2cb88b5a4d2d94c5c75f31c31e25d10073e38b8758bd62","9d3db8aef76e0766621b93a1144069623346b9cfccf538b67859141a9793d16d","13fb62b7b7affaf711211d4e0c57e9e29d87165561971cc55cda29e7f765c44f","8868c445f34ee81895103fd83307eadbe213cfb53bbc5cd0e7f063e4214c49b0","277990f7c3f5cbbf2abd201df1d68b0001ff6f024d75ca874d55c2c58dd6e179","a31dfa9913def0386f7b538677c519094e4db7ce12db36d4d80a89891ef1a48f","f4c0c7ee2e447f369b8768deed1e4dd40b338f7af33b6cc15c77c44ff68f572d","2f268bd768d2b35871af601db7f640c9e6a7a2364de2fd83177158e0f7b454dc","73bfa99afd564cfef641ccb4fdef0debdb3c49f0a817085d68fc6b6508266f09","a004a3b60f23fcfb36d04221b4bef155e11fd57293ba4f1c020a220fadf0fc85","4e145e72e5600a49fa27282d63bb9715b19343d8826f91be0f324af73bc25322","62f734f7517d2ca3bf02abddaf8abf7e3de258667a63e8258373658bbb9153b6","df99236666c99f3e5c22c886fc4dba8156fed038057f7f56c4c39a0c363cc66a","b4bce232891b663cc0768f737f595a83de80b74671db22b137570ef2dc6b86ef","781b566c3eccba1a2cafbb827fb6fc02d5147c89a40e11c7892057481a195270","c9befaf90879c27ee3f7f12afd15b4531fbbea9ec37d145b83807a67d9f55c82","8630f26d1038328e6b9da9c082f6fa911903bc638499baa6cfab002b5a70af96","73474d70a9b4f02771119085c4cd7562be4169e7973544c9541341ca2931aa3d","54da497c3b3b94fae91a66ed222e21411dc595a17f9e6bd229e233d0de732691","803da2f4e024efa2edc55c67d35c5240e7ae599baf9263b453acd02127a582e9","b8b070df71250096699ad55a106d161d403347ed335f72c5ae8485e5d858524d","a9716557f56781aef13d6d3c5dafc61236f64bfd48d462c4848a7eca25f924ff","3d15b5e24065431bf7831b8e84000c0e767d921135af86ef0b0c034f14df5d8f","a563202fc316d8926dc83759cec155d5c028a7828996cbd283470ac7e8c58727","e5c004f39619ebaaa2475b18e949e12e51ff629132f48d56608081e5f0195577","e6b7a14eb53f023f455f4513b6a560f004fa1ebf6cc298b479be796541e322e6","771bf8091a4e40be8f539648b5a0ff7ecba8f46e72fc16acc10466c4c1304524","cb66d1c49ad20e7246b73671f59acaaaac72c58b7e37faae69ae366fd6adf1d3","e5c1c52655dc3f8400a3406fd9da0c4888e6b28c29de33bee51f9eaeda290b4d","1e28ee6d718080b750621e18befe236487df6685b37c17958520aaf777b7aeff","8891345dbe1920b9ed3f446a87de27b5cd6b2053112f6ff3975a661f9a03ec34","a72e21b05b937630b97b1d36bb76b879bb243a021516aef10701775f2da7f872","4debe398f42800c1359d60396fc76aa4fa34a23a96b597672b5c284fd81c0158","a720d8028d38f2b94855967789252c6148957dcd24e280d193b78db00eb3a099","1b0818297187a33e2c24c39145b409e11624523d32364edc22bceaf1f4c86f1b","332e362ba8bd05237c661ba685b2c37e9cde5e0876cb81bf515d15623bdee74c","84648722d2b1f16c55cb68dbfaf18b913a13a78274641f7236eeb4d7088f6db8","f63d313c2673117608b3ed762ac07f618ee873bee3764406b06bcfcb5a713afe","2e2a2a0f7ef2a7587cfe40a96dbca31e8badb15a8a42bf042fe7a63abc9e2f27","2bb32fb3f0fe14c48170dcad3d2a501c1883516d4da9cbd0a2043d90c9789a7b","352532af4d27bdf545d9bb20f0c55758138327404bd86f0934edc7ded76be7e6","64d93f4a24f8a70b64658a7d9b9e96bd46ad498ad5dc9cdb9d52da547e77ff68","8a728de3047a1dadcb69595e74c3d75bc80a2c8165f8cf875ab610042a137fbe","3eafed0be4b194295bcde379e7d083779d0f27f31b715738a3beac49547dc613","7e74740cb7a937af187118ae4582fbe5d4d30b34e9cddec2bd7f7a865e7824ca","8cdf90b59995b9f7c728a28e7af5dc4431f08f3346e6c16af49f548461a3e0aa","1d472b3eedeeaab5418ea6563734fffc68c404feac91900633e7126bee346590","6cf7182d798892394143549a7b27ed27f7bcf1bf058535ec21cc03f39904bfb3","abe524377702be43d1600db4a5a940da5c68949e7ac034c4092851c235c38803","daf4418239ceadb20481bff0111fe102ee0f6f40daaa4ee1fdaca6d582906a26","8a5c5bc61338c6f2476eb98799459fd8c0c7a0fc20cbcd559bb016021da98111","644cf9d778fa319c8044aed7eeb05a3adb81a1a5b8372fdc9980fbdd6a61f78e","d2c6adc44948dbfdece6673941547b0454748e2846bb1bcba900ee06f782b01d","d80b7e2287ee54b23fe6698cb4e09b1dabc8e1a90fb368e301ac6fbc9ad412e2","60b678d3c92834151ca6701c399c74c961193c06cc9d97da32cc4ad22ee5951e",{"version":"c7eebbc98b3e28df60899db055f0b1940295e6c68173e1859b97c062e02e00cf","affectsGlobalScope":true},"816f825b072afd246eb3905cf51528d65e6fe51c12a1f8fb370c93bb0e031c9b","f6a64974d6fab49d27f8b31578a08662b9a7f607de3b5ec2d7c45b3466d914fd","a8e9d24cd3dc3bd95b34eb6edeac7525b7fdbe23b373554bdc3e91572b8079ee","1d5fd841722ce9aa05b9d602153c15914108bdaa8154bdd24eddadb8a3df586c","14788c10b66324b98feee7a2567eb30d1066e11506e54bf1215b369d70da4932","316785de2c0af9fbd9f2191904670e880bc3836671dd306236675515e481973a","070d805e34c4b9a7ce184aabb7da77dc60f2bdb662349cf7fc23a2a69d17de8d","092deae5b432b6b04f8b4951f1478c08862e832abd4477315dba6ea0c39f1d9e","27d668b912bf3fd0a4ddf3886a8b405eed97505fdc78a9f0b708f38e3e51655d","72654e8bed98873e19827d9a661b419dfd695dbc89fd2bb20f7609e3d16ebd50","66bdb366b92004ba3bf97df0502b68010f244174ee27f8c344d0f62cb2ac8f1e","ae41e04ff8c248ab719fe7958754e8d517add8f1c7abcc8d50214fd67c14194d","558008ff2f788e594beaa626dfcfb8d65db138f0236b2295a6140e80f7abd5d2",{"version":"6573e49f0f35a2fd56fd0bb27e8d949834b98a9298473f45e947553447dd3158","affectsGlobalScope":true},{"version":"e04ea44fae6ce4dc40d15b76c9a96c846425fff7cc11abce7a00b6b7367cbf65","affectsGlobalScope":true},{"version":"7526edb97536a6bba861f8c28f4d3ddd68ddd36b474ee6f4a4d3e7531211c25d","affectsGlobalScope":true},"3c499fc4aad3185e54006bdb0bd853f7dd780c61e805ab4a01a704fa40a3f778",{"version":"13f46aaf5530eb680aeebb990d0efc9b8be6e8de3b0e8e7e0419a4962c01ac55","affectsGlobalScope":true},"17477b7b77632178ce46a2fce7c66f4f0a117aa6ef8f4d4d92d3368c729403c9",{"version":"700d5c16f91eb843726008060aebf1a79902bd89bf6c032173ad8e59504bc7ea","affectsGlobalScope":true},"169c322c713a62556aedbf3f1c3c5cf91c84ce57846a4f3b5de53f245149ec7b",{"version":"b0b314030907c0badf21a107290223e97fe114f11d5e1deceea6f16cabd53745","affectsGlobalScope":true},"7c6c5a958a0425679b5068a8f0cc8951b42eb0571fee5d6187855a17fa03d08a",{"version":"f659d54aa3496515d87ff35cd8205d160ca9d5a6eaf2965e69c4df2fa7270c2c","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"4a4d7982941daaeb02f730f07578bce156d2c7cabfa184099321ed8b1e51591b",{"version":"cc8e57cfe18cd11c3bab5157ec583cfe5d75eefefe4b9682e54b0055bf86159f","affectsGlobalScope":true},"75f6112942f6aba10b3e2de5371ec8d40a9ab9ab05c8eb8f98a7e8e9f220c8a2",{"version":"8a3b75fccc93851209da864abe53d968629fab3125981b6f47008ec63061eb39","affectsGlobalScope":true},"4aafdcfff990abfe7feb894446ab43d2268657084ba656222e9b873d2845fe3c",{"version":"d6f55de9010fbefe991546d35da3f09ae0e47afae754cb8a4c867fd7e50dcec0","affectsGlobalScope":true},"afac637a8547d41243dd8c4824c202c9d024534c5031181a81dece1281f1e261",{"version":"1ce2f82236ecdd61ff4e476c96d83ce37d9f2a80601a627fe1d3048e8648f43c","affectsGlobalScope":true},"42d908b851ddcf6df729c0a2ae56f151bad6610ea368729d68f0c8fbbd779913",{"version":"592e99b73ae40c0e64ce44b3e28cea3d7149864f2f3cbc6ccb71f784373ade97","affectsGlobalScope":true},"fa601c3ce9e69927d13e178fdcb6b70a489bb20c5ca1459add96e652dbdefcf6",{"version":"8f8ebce0e991de85323524170fad48f0f29e473b6dd0166118e2c2c3ba52f9d6","affectsGlobalScope":true},"e58a369a59a067b5ee3990d7e7ed6e2ce846d82133fb5c62503b8c86427421a4",{"version":"f877e78f5304ec3e183666aab8d5a1c42c3a617ff616d27e88cc6e0307641beb","affectsGlobalScope":true},"82a66c8db63050ce22777862d6dc095b5e74f80f56e3a2631870d7ee8d104c9e",{"version":"4fc0006f46461bb20aac98aed6c0263c1836ef5e1bbf1ca268db4258ed6a965e","affectsGlobalScope":true},"e086e212ddb5de48f83d971e892949a9ed5ada7134b3116f17768b6885bce6f3",{"version":"867954bf7772a2979c5c722ef216e432d0d8442e995e6018e89a159e08d5d183","affectsGlobalScope":true},"6cc643a497641f28562d8a24b3bd6c4252f3476b462ea406f3123ae70be343ce",{"version":"cd8a7e7d61af5ca34b39095ab24bdcb308bfd4ab379df8ef9d53ce9fa83187a8","affectsGlobalScope":true},"9e837aadb58587a9f79d1ba6a1625cfe40e4077c6bc89cd1c1d5886a2d2489cc",{"version":"544f8c58d5e1b386997f5ae49c6a0453b10bd9c7034c5de51317c8ac8ea82e9a","affectsGlobalScope":true},"2382c18dddfe93b455dfaccc5e6ad795cc33ba8a6a72de41622ef03dd27e377f",{"version":"ae9b62dd72bf086ccc808ba2e0d626d7d086281328fc2cf47030fd48b5eb7b16","affectsGlobalScope":true},"b03e600a48c41adfad25cda292a2bcd87963f7fce09f3561978482f9f6530fc4",{"version":"cc1bddca46e3993a368c85e6a3a37f143320b1c13e5bfe198186d7ed21205606","affectsGlobalScope":true},"34cb99d3f4d6e60c5776445e927c460158639eeb8fd480e181943e93685e1166",{"version":"c77843976650a6b19c00ed2ede800f57517b3895b2437d01efc623f576ef1473","affectsGlobalScope":true},"c8db20febc70a33fc8668c2f6475c42be345a0545f6bd719f787b62e60d8f49e",{"version":"5ebba285fdef0037c21fcbef6caad0e6cc9a36550a33b59f55f2d8d5746fc9b2","affectsGlobalScope":true},"85397e8169bdc706449ae59a849719349ecef1e26eef3e651a54bb2cc5ba8d65",{"version":"2b8dc33e6e5b898a5bca6ae330cd29307f718dca241f6a2789785a0ddfaa0895","affectsGlobalScope":true},"cc2c766993dfe7a58134ab3cacd2ef900ace4dec870d7b3805bf06c2a68928bd",{"version":"dde8acfb7dd736b0d71c8657f1be28325fea52b48f8bdb7a03c700347a0e3504","affectsGlobalScope":true},"96c711d561eaa29cec567f90571ea515f91412bb005ac2a4538bcadf0e439fa5",{"version":"34c9c31b78d5b5ef568a565e11232decf3134f772325e7cd0e2128d0144ff1e5","affectsGlobalScope":true},"7e72ce64e021f6f43c8743682a3c7cf2035166f8283ca675a4589e1bd8a63e55",{"version":"60cc5b4f0a18127b33f8202d0d0fde56bc5699f4da1764b62ed770da2d5d44f1","affectsGlobalScope":true},"5da9bade8fea62743220d554e24489ea6aa46596e94e67cfff19b95804a54a5f",{"version":"d11fa2d42f762954eb4a07a0ab16b0a46aa6faf7b239f6cd1a8f5a38cb08edcd","affectsGlobalScope":true},"87daa4e406afddcea17302b85e08a2de9444fe561347cd1572ffa671c0171552",{"version":"781afd67249e2733eb65511694e19cdcdb3af496e5d8cdee0a80eba63557ff6e","affectsGlobalScope":true},"6b32428a82779c0a33356f537ec131882935bc76ad0371722618a9ac6403cca0",{"version":"f3275e1f0e5852b1a50fd3669f6ad8e6e04db94693bcfb97d31851e63f8e301e","affectsGlobalScope":true},"de82ff7892200413e9e0c54b038d87099de9d74a9e815b3cb6e9908f950f6ccd",{"version":"8a6ecff784dafbdb121906a61009670121882523b646338196099d4f3b5761d8","affectsGlobalScope":true},"1d5f5827fdeb0d59f76a1ee6caf0804d5d3c260e60e465b0b62baea333199e62",{"version":"256bdff4c082d9f4e2303138f64c152c6bd7b9dbca3be565095b3f3d51e2ab36","affectsGlobalScope":true},"0b14c87ea4887402356f7c8b321dfd944880ae76cd703e342c57ac7a83de4465",{"version":"e214a2a7769955cd4d4c29b74044036e4af6dca4ab9aaa2ed69286fcdf5d23b3","affectsGlobalScope":true},"85647ff695641f7f2fdf511385d441fec76ee47b2ed3edb338f3d6701bf86059",{"version":"25659b24ac2917dbfcbb61577d73077d819bd235e3e7112c76a16de8818c5fd6","affectsGlobalScope":true},"d6f83ae805f5842baa481a110e50ca8dbed0b631e0fd197b721de91dd6948d77",{"version":"7402e6ca4224d9c8cdd742afd0b656470ea6a5efe2229644418198715bb4b557","affectsGlobalScope":true},"36b19abb9d0a0e6809f9493786fe73c3058f66f0a5778554b30bd09d6d21d3d8",{"version":"242b00f3d86b322df41ed0bbea60ad286c033ac08d643b71989213403abcdf8a","affectsGlobalScope":true},"009a83d5af0027c9ab394c09b87ba6b4ca88a77aa695814ead6e765ea9c7a7cd",{"version":"4dc6e0aeb511a3538b6d6d13540496f06911941013643d81430075074634a375","affectsGlobalScope":true},"3a9312d5650fcbaf5888d260ac21bc800cc19cc5cc93867877dfeb9bbd53e2ca",{"version":"7ed57d9cb47c621d4ef4d4d11791fec970237884ff9ef7e806be86b2662343e8","affectsGlobalScope":true},"3bee2291e79f793251dcbea6b2692f84891c8c6508d97d89e95e66f26d136d37",{"version":"5bd49ff5317b8099b386eb154d5f72eca807889a354bcee0dc23bdcd8154d224","affectsGlobalScope":true},"1d5156bc15078b5ae9a798c122c436ce40692d0b29d41b4dc5e6452119a76c0e",{"version":"bd449d8024fc6b067af5eac1e0feb830406f244b4c126f2c17e453091d4b1cb3","affectsGlobalScope":true},"b6ce2b60910be81d4f2000ffe0bdbec408d6423196f6ad00db2a467cd53d676b",{"version":"dd5eab3bb4d13ecb8e4fdc930a58bc0dfd4825c5df8d4377524d01c7dc1380c5","affectsGlobalScope":true},"f011eacef91387abfde6dc4c363d7ffa3ce8ffc472bcbaeaba51b789f28bd1ef",{"version":"ceae66bbecbf62f0069b9514fae6da818974efb6a2d1c76ba5f1b58117c7e32e","affectsGlobalScope":true},"4101e45f397e911ce02ba7eceb8df6a8bd12bef625831e32df6af6deaf445350",{"version":"07a772cc9e01a1014a626275025b8af79535011420daa48a8b32bfe44588609c","affectsGlobalScope":true},"6d0790ee42e40b27183db10ce3be3f0e98dc3944d73c9a4c092bf5ec3bb184f7",{"version":"5be6cb715e042708f5ec2375975ba7a855f54d3554cf8970cd49d0434ad5c235","affectsGlobalScope":true},"02fbf1f4aabb776e2cf229fd74840a27eee5a08642b8ca0677e680a8427d6d12",{"version":"4d13cccdda804f10cecab5e99408e4108f5db47c2ad85845c838b8c0d4552e13","affectsGlobalScope":true},"780abc69f1e0ed0a3ed43cfaf201378faf6e8d8ec13354ed7169159cdeead3b9",{"version":"7ced457d6288fcb2fa3b64ddcaba92dbe7c539cc494ad303f64fc0a2ab72157d","affectsGlobalScope":true},"5d2721c49e058b8f28e495a54f709a004571cd3f57a62df63ed3eddb9e860af1",{"version":"0ccde5fc989806345b5ecca397796e26bbbca2882297adea57009022be7a300a","affectsGlobalScope":true},"730592593eaba845555f4d8f602d8c066972c97a3a8522a0c6f8f721e36bdc90",{"version":"725128203f84341790bab6555e2c343db6e1108161f69d7650a96b141a3153be","affectsGlobalScope":true},"e6ed9d8801e5fddc1a4260510e4266fbf80d5767cf2b9a6cbe8d0eb39d45971d",{"version":"947bf6ad14731368d6d6c25d87a9858e7437a183a99f1b67a8f1850f41f8cedd","affectsGlobalScope":true},"8eda6e4644c03f941c57061e33cef31cfde1503caadb095d0eb60704f573adee",{"version":"0538a53133eebb69d3007755def262464317adcf2ce95f1648482a0550ffc854","affectsGlobalScope":true},"a1dd4d1eada136ec8afb47871da02c1a28be6adc81717106ded5fcdd6548835c",{"version":"8d3ccb8e37673a205fb24f1a3ce7bc9237d32be05494c240245e3a783dd8e16d","affectsGlobalScope":true},"92492e2b8992cc1d68eca60f289ce9fa29dda1eb4d12eed577bcdb958666754b",{"version":"d155bad43ed0facccf039f4220d5d07fbafab34d9b1405e30d213d1ab36af590","affectsGlobalScope":true},"4a5259be4d6c85a4cd49745fb1d29d510a4a855e84261ad77d0df8585808292c",{"version":"220f860f55d18691bedf54ba7df667e0f1a7f0eed11485622111478b0ab46517","affectsGlobalScope":true},"3bee701deb7e118ea775daf8355be548d8b87ddf705fe575120a14dcace0468a",{"version":"9c473a989218576ad80b55ea7f75c6a265e20b67872a04acb9fb347a0c48b1a0","affectsGlobalScope":true},"5f666c585bb469b58187b892ed6dfb1ebf4aa84464b8d383b1f6defc0abe5ae0",{"version":"20b41a2f0d37e930d7b52095422bea2090ab08f9b8fcdce269518fd9f8c59a21","affectsGlobalScope":true},"dbac1f0434cde478156c9cbf705a28efca34759c45e618af88eff368dd09721d",{"version":"0f864a43fa6819d8659e94d861cecf2317b43a35af2a344bd552bb3407d7f7ec","affectsGlobalScope":true},"855391e91f3f1d3e5ff0677dbd7354861f33a264dc9bcd6814be9eec3c75dc96",{"version":"ebb2f05e6d17d9c9aa635e2befe083da4be0b8a62e47e7cc7992c20055fac4f0","affectsGlobalScope":true},"aee945b0aace269d555904ab638d1e6c377ce2ad35ab1b6a82f481a26ef84330",{"version":"9fb8ef1b9085ff4d56739d826dc889a75d1fefa08f6081f360bff66ac8dd6c8d","affectsGlobalScope":true},"342fd04a625dc76a10b4dea5ffee92d59e252d968dc99eb49ce9ed07e87a49d0",{"version":"e1425c8355feaaca104f9d816dce78025aa46b81945726fb398b97530eee6b71","affectsGlobalScope":true},"c000363e096f8d47779728ebba1a8e19a5c9ad4c54dbde8729eafc7e75eee8dc",{"version":"42c6b2370c371581bfa91568611dae8d640c5d64939a460c99d311a918729332","affectsGlobalScope":true},"590155b280f2902ebb42a991e9f4817ddf6558e5eb197deb3a693f5e0fc79bd9",{"version":"867b000c7a948de02761982c138124ad05344d5f8cb5a7bf087e45f60ff38e7c","affectsGlobalScope":true},"6f1d28967ec27ef5d244770ac80a62b66f10439aea63ed52e0604a18aad6468c",{"version":"02c22afdab9f51039e120327499536ac95e56803ceb6db68e55ad8751d25f599","affectsGlobalScope":true},"aba5fbfef4b20028806dac5702f876b902a6ba04e3c5b79760b62fc268c1bc80",{"version":"37129ad43dd9666177894b0f3ce63bba752dc3577a916aa7fe2baa105f863de3","affectsGlobalScope":true},"68526c897cd9e129d21f982679011d64068eac52cc437fce5e48bc78670356f3",{"version":"31f709dc6793c847f5768128e46c00813c8270f7efdb2a67b19edceb0d11f353","affectsGlobalScope":true},"eee3c05152eff43e7a9555abbef7d8710bfdb404511432599e8ac63ae761c46c",{"version":"018847821d07559c56b0709a12e6ffaa0d93170e73c60ee9f108211d8a71ec97","affectsGlobalScope":true},"b50322892db37ef61b48411c989f4cd36b3f41205ad10e7c03f14afade571256",{"version":"7832e8fe1841bee70f9a5c04943c5af1b1d4040ac6ff43472aeb1d43c692a957","affectsGlobalScope":true},"9f2282aa955832e76be86172346dc00c903ea14daf99dd273e3ec562d9a90882",{"version":"013853836ed002be194bc921b75e49246d15c44f72e9409273d4f78f2053fc8f","affectsGlobalScope":true},"0e9a7364eaf09801cbb8cf0118441d5f7f011fc0060c60191587526c448974c4",{"version":"e08392a815b5a4a729d5f8628e3ed0d2402f83ed76b20c1bf551d454f59d3d16","affectsGlobalScope":true},"6a7f172fb4524b4091b793d0e2cccdb365876dcf7f056552a93fbf6c2c1d64d9",{"version":"c3dfd6032ba0bc68520b99fc40cb45f46c73f4c98dedcde79b181f1f0632c262","affectsGlobalScope":true},"261f0f336c13435274021ab058138312b2443bd61723de6acbc4e57a8cecf349",{"version":"5768572c8e94e5e604730716ac9ffe4e6abecbc6720930f067f5b799538f7991","affectsGlobalScope":true},"198075277aef627743ef66a469881addbbf2f6c4c508ffb4c96de94137ca8563",{"version":"e2ae8c8fcfb98fae10647c9159915deea2073bdfcc3fe99b5846fd9563867399","affectsGlobalScope":true},"d0984177c1dc95545541f477fb0df1fb76e7454a943c98ed208dc0da2ff096b2",{"version":"f366ca25885ab7c99fc71a54843420be31df1469f8556c37d24f72e4037cb601","affectsGlobalScope":true},"a05b412a93ba43d2d6e9c81718dea87a42c7e4f9e8b1efbaafee03a94eaf4b7a",{"version":"163cc945edad3584b23de3879dbad7b538d4de3a6c51cc28ae4115caee70ce21","affectsGlobalScope":true},"4fefff4da619ba238fccd45484e9ee84ee1ae89152eac9e64d0f1e871911121c",{"version":"d604893d4e88daade0087033797bbafc2916c66a6908da92e37c67f0bad608db","affectsGlobalScope":true},"56ce2cd3aa0ebbcf161faed36a9d119e5ff6f962993f1af29b826eff1801bad3",{"version":"dc265f24d2ddad98f081eb76d1a25acfb29e18f569899b75f40b99865a5d9e3b","affectsGlobalScope":true},"7c1538394a43ce6d7b7c471b87cc97c487bc3bff37fdd2fc5f659c67445a3a03",{"version":"dd7f9be1c6c69fbf3304bc0ae81584e6cd17ab6ad4ab69cb8b06f541318cc97e","affectsGlobalScope":true},"f528ce3ce9430376705b10ee52296d36b83871b2b39a8ae3ecec542fc4361928",{"version":"41ffc155348dd4993bc58ee901923f5ade9f44bc3b4d5da14012a8ded17c0edd","affectsGlobalScope":true},"580eedb87f9ed40ff5fc619507e47c984a1e3fbf2fee8f5eecbe98806997d0ee",{"version":"3e8e0655ed5a570a77ea9c46df87eeca341eed30a19d111070cf6b55512694e8","affectsGlobalScope":true},"c1b3019eeb7120da76e837268ac26beea8dc0aa8d6108e286e9cfa9478af562b","6bb6fda2bba279010a8ffb5221fd28aed12d3d37ebc396a6e0f02840adb17970",{"version":"cc4c74d1c56e83aa22e2933bfabd9b0f9222aadc4b939c11f330c1ed6d6a52ca","affectsGlobalScope":true},"b0672e739a3d2875447236285ec9b3693a85f19d2f5017529e3692a3b158803d",{"version":"8a2e0eab2b49688f0a67d4da942f8fd4c208776631ba3f583f1b2de9dfebbe6c","affectsGlobalScope":true},"229648df48b149ecb40a267e69899456c28dbe4b31e64513be64eb2b58e29f1c",{"version":"f6266ada92f0c4e677eb3fbf88039a8779327370f499690bf9720d6f7ad5f199","affectsGlobalScope":true},"ab149c81ee4c7bb5fd0abea1057389185e334d5038c4c8739faa65ec5feb6ffc",{"version":"fb6cb8911a03c7ac61ee80aafdc072623850dd6a6d9fa0c98b015d8b181153a5","affectsGlobalScope":true},"8946ad9bc3d5c42cdb07de081480d869e358f5986166649a9e4230bea2ea84bd",{"version":"09a227ec52ef63acca2a3a1f31ca6d3affa45b51e18ffdf0036152d5f102dfd7","affectsGlobalScope":true},"c03bcada0b059d1f0e83cabf6e8ca6ba0bfe3dece1641e9f80b29b8f6c9bcede",{"version":"f2eac49e9caa2240956e525024bf37132eae37ac50e66f6c9f3d6294a54c654c","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"a0ad84c717107c133f77f15b344d62633863931d4b3592de20c232ded129c50b",{"version":"7373a173ea1b42648b1779267a5a707eb403ccc31a16761870dbf0660eb234ee","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"ace629691abf97429c0afef8112cc0c070189ff2d12caee88e8913bdd2aaad25",{"version":"99a71914dd3eb5d2f037f80c3e13ba3caff0c3247d89a3f61a7493663c41b7ea","affectsGlobalScope":true},"25a12a35aeee9c92a4d7516c6197037fc98eee0c7f1d4c53ef8180ffc82cb476",{"version":"b4646ac5ca017c2bb22a1120b4506855f1cef649979bf5a25edbead95a8ea866","affectsGlobalScope":true},"54d94aeec7e46e1dab62270c203f7907ca62e4aaa48c6cdcfed81d0cd4da08f3",{"version":"f9585ff1e49e800c03414267219537635369fe9d0886a84b88a905d4bcfff998","affectsGlobalScope":true},"483d29eb2d4b6c4d486f67b682a5d0ca2d4d452e09e6d43eee0f5ef0f4950aee","eaf540a66adaf590521596a4de7d2f86644aae59b5ef449b26d4b00ccfc13ba5",{"version":"1ff9449d1efdebef55b0ba13fe7f04b697c264e73ec05f41f7633dd057468b2d","affectsGlobalScope":true},"79792358436829ae510866561a6c62e37472108ae7a1836ba2b7136eba000bda",{"version":"7c160037704eee2460c7de4a60f3379da37180db9a196071290137286542b956","affectsGlobalScope":true},"87bdcea89ec013888b0fdb1694ce0cb4b8bf6b9f03f90429cbb4e00b510f838d",{"version":"4681d15a4d7642278bf103db7cd45cc5fe0e8bde5ea0d2be4d5948186a9f4851","affectsGlobalScope":true},"91eb719bcc811a5fb6af041cb0364ac0993591b5bf2f45580b4bb55ddfec41e2","05d7cf6a50e4262ca228218029301e1cdc4770633440293e06a822cb3b0ef923",{"version":"78402a74c2c1fc42b4d1ffbad45f2041327af5929222a264c44be2e23f26b76a","affectsGlobalScope":true},"cc93c43bc9895982441107582b3ecf8ab24a51d624c844a8c7333d2590c929e2",{"version":"c5d44fe7fb9b8f715327414c83fa0d335f703d3fe9f1045a047141bfd113caec","affectsGlobalScope":true},"f8b42b35100812c99430f7b8ce848cb630c33e35cc10db082e85c808c1757554",{"version":"ba28f83668cca1ad073188b0c2d86843f9e34f24c5279f2f7ba182ff051370a4","affectsGlobalScope":true},"349b276c58b9442936b049d5495e087aef7573ad9923d74c4fbb5690c2f42a2e",{"version":"ad8c67f8ddd4c3fcd5f3d90c3612f02b3e9479acafab240b651369292bb2b87a","affectsGlobalScope":true},"1954f24747d14471a5b42bd2ad022c563813a45a7d40ba172fc2e89f465503e2",{"version":"05bbb3d4f0f6ca8774de1a1cc8ba1267fffcc0dd4e9fc3c3478ee2f05824d75d","affectsGlobalScope":true},"37e69b0edd29cbe19be0685d44b180f7baf0bd74239f9ac42940f8a73f267e36",{"version":"afba2e7ffca47f1d37670963b0481eb35983a6e7d043c321b3cfa2723cab93c9","affectsGlobalScope":true},"bb146d5c2867f91eea113d7c91579da67d7d1e7e03eb48261fdbb0dfb0c04d36",{"version":"90b95d16bd0207bb5f6fedf65e5f6dba5a11910ce5b9ffc3955a902e5a8a8bd5","affectsGlobalScope":true},"3698fee6ae409b528a07581f542d5d69e588892f577e9ccdb32a4101e816e435",{"version":"26fc7c5e17d3bcc56ed060c8fb46c6afde9bc8b9dbf24f1c6bdfecca2228dac8","affectsGlobalScope":true},"46fd8192176411dac41055bdb1fdad11cfe58cdce62ccd68acff09391028d23f",{"version":"22791df15401d21a4d62fc958f3683e5edc9b5b727530c5475b766b363d87452","affectsGlobalScope":true},"150ac8ae1c4500f57f2af6e491717a8858a40619063164b1ad746d6a9ef30207","cefffd616954d7b8f99cba34f7b28e832a1712b4e05ac568812345d9ce779540",{"version":"a365952b62dfc98d143e8b12f6dcc848588c4a3a98a0ae5bf17cbd49ceb39791","affectsGlobalScope":true},"af0b1194c18e39526067d571da465fea6db530bca633d7f4b105c3953c7ee807",{"version":"b58e47c6ff296797df7cec7d3f64adef335e969e91d5643a427bf922218ce4ca","affectsGlobalScope":true},"76cbd2a57dc22777438abd25e19005b0c04e4c070adca8bbc54b2e0d038b9e79","4aaf6fd05956c617cc5083b7636da3c559e1062b1cadba1055882e037f57e94c","171ad16fb81daf3fd71d8637a9a1db19b8e97107922e8446d9b37e2fafd3d500",{"version":"d4ce8dfc241ebea15e02f240290653075986daf19cf176c3ce8393911773ac1b","affectsGlobalScope":true},{"version":"52cd0384675a9fa39b785398b899e825b4d8ef0baff718ec2dd331b686e56814","affectsGlobalScope":true},{"version":"58c2bb87fdf190100849a698042d09373be574e531758b1cfe3533258c3d4daa","affectsGlobalScope":true},{"version":"b8f8d5bc91f9618e50778e56f99e74f63dc08f7a91799379887d0fb3ff51fe5e","affectsGlobalScope":true},{"version":"769c459185e07f5b15c8d6ebc0e4fec7e7b584fd5c281f81324f79dd7a06e69c","affectsGlobalScope":true},{"version":"c947df743f2fd638bd995252d7883b54bfef0dbad641f085cc0223705dfd190e","affectsGlobalScope":true},"db78f3b8c08924f96c472319f34b5773daa85ff79faa217865dafef15ea57ffb","de420c3a3b968126a86a7740547c9c0c5d79651f0a5d2f9c55ca2a9a31641581","1aed35f40a800553b121163a23a09f79d84dc460f76de5420cc252a43dc89763","1b2087ad75001421b154e60b29ac29bc130e91dc85b192e88e634cbb4be2d2a6","16f9007c166c4d16c3caa7c10c839d18c6881371a195157d7f0e62f71d75a969","6887bd308d04edb172ed13b82dd39f178c394c7ff869354731b0a20b837cc1f4","6acfe24924e148d3b2823267af4bd89e1034a0e7793f7dbbc9ca3b894e032a79"],"root":[381,385,386],"options":{"inlineSources":true,"module":99,"noEmitOnError":false,"noImplicitAny":false,"noImplicitThis":true,"outDir":"../../../../dist/dev/.uvue/app-ios","rootDir":"../../../../dist/dev/.tsc/app-ios","skipLibCheck":true,"sourceMap":true,"strict":true,"target":99,"tsBuildInfoFile":"./.tsbuildInfo","useDefineForClassFields":false},"fileIdsList":[[46,48,375,376,377],[136,150,371,374,376,377,378,379],[62,69],[135],[54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134],[57,58,59,60,61,63,65,67,68,70],[108],[69,73],[110],[129],[64],[70],[63,69,80],[69,78],[57,58,59,60,61,65,69,70,78,79],[109],[69],[78,79,80,125],[61,70,111,114],[56,61,66,71,78,106,107,111,112],[66,69],[113],[71],[60,69],[69,70],[69,80],[68,69,78,79,80],[73],[46,48,67,375,376],[373],[372],[151,152,303,340,347,366,368,370],[369],[367],[154,156,158,160,162,164,166,168,170,172,174,176,178,180,182,184,186,188,190,192,194,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,252,254,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302],[153],[155],[157],[159],[163],[165],[167],[169],[171],[173],[175],[177],[179],[181],[183],[185],[187],[189],[191],[193],[195],[197],[199],[201],[203],[205],[207],[209],[211],[213],[215],[217],[219],[221],[223],[225],[227],[229],[231],[233],[235],[237],[239],[241],[243],[245],[247],[249],[251],[253],[255],[257],[259],[261],[263],[265],[267],[269],[271],[273],[275],[277],[279],[281],[283],[285],[287],[289],[291],[293],[295],[297],[299],[301],[305,307,309,311,313,315,317,319,321,323,325,327,329,331,333,335,337,339],[304],[306],[308],[310],[312],[314],[330],[334],[336],[338],[342,344,346],[341],[343],[345],[349,351,353,355,357,359,361,363,365],[364],[356],[352],[350],[362],[354],[358],[348],[360],[73,80],[149],[137,138,139,140,141,142,143,144,145,146,147,148],[80],[73,80,133],[50,51,52],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27],[46,48,376,377],[44],[44,45,46,48],[41,48,49],[42],[45,46,47,376,377],[29,30,31,32,33,34,35,36,37,38,39],[33],[36],[33,35],[382],[383],[382,384],[382,383,384]],"referencedMap":[[376,1],[380,2],[63,3],[136,4],[135,5],[69,6],[109,7],[132,8],[111,9],[130,10],[65,11],[64,12],[128,13],[73,12],[107,14],[80,15],[110,16],[70,17],[126,18],[124,12],[123,12],[122,12],[121,12],[120,12],[119,12],[118,12],[117,12],[116,19],[113,20],[115,12],[67,21],[71,12],[114,22],[106,23],[105,12],[103,12],[102,12],[101,24],[100,12],[99,12],[98,12],[97,12],[96,25],[95,12],[94,12],[93,12],[92,12],[90,26],[91,12],[88,12],[87,12],[86,12],[89,27],[85,12],[84,17],[83,28],[82,28],[81,26],[77,28],[76,28],[75,28],[74,28],[72,23],[377,29],[374,30],[373,31],[371,32],[370,33],[368,34],[303,35],[154,36],[156,37],[158,38],[160,39],[164,40],[166,41],[168,42],[170,43],[172,44],[174,45],[176,46],[178,47],[180,48],[182,49],[184,50],[186,51],[188,52],[190,53],[192,54],[194,55],[196,56],[198,57],[200,58],[202,59],[204,60],[206,61],[208,62],[210,63],[212,64],[214,65],[216,66],[218,67],[220,68],[222,69],[224,70],[226,71],[228,72],[230,73],[232,74],[234,75],[236,76],[238,77],[240,78],[242,79],[244,80],[246,81],[248,82],[250,83],[252,84],[254,85],[256,86],[258,87],[260,88],[262,89],[264,90],[266,91],[268,92],[270,93],[272,94],[274,95],[276,96],[278,97],[280,98],[282,99],[284,100],[286,101],[288,102],[290,103],[292,104],[294,105],[296,106],[298,107],[300,108],[302,109],[340,110],[305,111],[307,112],[309,113],[311,114],[313,115],[315,116],[331,117],[335,118],[337,119],[339,120],[347,121],[342,122],[344,123],[346,124],[366,125],[365,126],[357,127],[353,128],[351,129],[363,130],[355,131],[359,132],[349,133],[361,134],[137,135],[150,136],[149,137],[143,135],[144,135],[138,135],[139,135],[140,135],[141,135],[142,135],[146,138],[147,139],[145,138],[53,140],[28,141],[47,142],[45,143],[46,144],[381,145],[43,146],[48,147],[40,148],[35,149],[34,149],[37,150],[36,151],[39,151],[383,152],[384,153],[386,154],[385,155]],"exportedModulesMap":[[376,1],[380,2],[63,3],[136,4],[135,5],[69,6],[109,7],[132,8],[111,9],[130,10],[65,11],[64,12],[128,13],[73,12],[107,14],[80,15],[110,16],[70,17],[126,18],[124,12],[123,12],[122,12],[121,12],[120,12],[119,12],[118,12],[117,12],[116,19],[113,20],[115,12],[67,21],[71,12],[114,22],[106,23],[105,12],[103,12],[102,12],[101,24],[100,12],[99,12],[98,12],[97,12],[96,25],[95,12],[94,12],[93,12],[92,12],[90,26],[91,12],[88,12],[87,12],[86,12],[89,27],[85,12],[84,17],[83,28],[82,28],[81,26],[77,28],[76,28],[75,28],[74,28],[72,23],[377,29],[374,30],[373,31],[371,32],[370,33],[368,34],[303,35],[154,36],[156,37],[158,38],[160,39],[164,40],[166,41],[168,42],[170,43],[172,44],[174,45],[176,46],[178,47],[180,48],[182,49],[184,50],[186,51],[188,52],[190,53],[192,54],[194,55],[196,56],[198,57],[200,58],[202,59],[204,60],[206,61],[208,62],[210,63],[212,64],[214,65],[216,66],[218,67],[220,68],[222,69],[224,70],[226,71],[228,72],[230,73],[232,74],[234,75],[236,76],[238,77],[240,78],[242,79],[244,80],[246,81],[248,82],[250,83],[252,84],[254,85],[256,86],[258,87],[260,88],[262,89],[264,90],[266,91],[268,92],[270,93],[272,94],[274,95],[276,96],[278,97],[280,98],[282,99],[284,100],[286,101],[288,102],[290,103],[292,104],[294,105],[296,106],[298,107],[300,108],[302,109],[340,110],[305,111],[307,112],[309,113],[311,114],[313,115],[315,116],[331,117],[335,118],[337,119],[339,120],[347,121],[342,122],[344,123],[346,124],[366,125],[365,126],[357,127],[353,128],[351,129],[363,130],[355,131],[359,132],[349,133],[361,134],[137,135],[150,136],[149,137],[143,135],[144,135],[138,135],[139,135],[140,135],[141,135],[142,135],[146,138],[147,139],[145,138],[53,140],[28,141],[47,142],[45,143],[46,144],[381,145],[43,146],[48,147],[40,148],[35,149],[34,149],[37,150],[36,151],[39,151],[383,152],[384,153],[386,154],[385,155]],"semanticDiagnosticsPerFile":[376,375,380,108,63,59,60,57,136,134,135,69,109,133,132,111,78,79,62,58,129,130,65,64,61,128,127,73,107,80,110,70,125,126,124,123,122,121,120,119,118,117,116,113,115,67,112,71,114,106,105,104,103,102,101,100,66,99,98,97,96,95,94,93,92,90,91,88,87,86,89,68,85,84,83,82,81,77,76,75,74,72,131,56,55,54,377,378,374,373,372,151,152,371,370,369,368,367,303,154,153,156,155,158,157,160,159,162,161,164,163,166,165,168,167,170,169,172,171,174,173,176,175,178,177,180,179,182,181,184,183,186,185,188,187,190,189,192,191,194,193,196,195,198,197,200,199,202,201,204,203,206,205,208,207,210,209,212,211,214,213,216,215,218,217,220,219,222,221,224,223,226,225,228,227,230,229,232,231,234,233,236,235,238,237,240,239,242,241,244,243,246,245,248,247,250,249,252,251,254,253,256,255,258,257,260,259,262,261,264,263,266,265,268,267,270,269,272,271,274,273,276,275,278,277,280,279,282,281,284,283,286,285,288,287,290,289,292,291,294,293,296,295,298,297,300,299,302,301,340,305,304,307,306,309,308,311,310,313,312,315,314,317,316,319,318,321,320,323,322,325,324,327,326,329,328,331,330,333,332,335,334,337,336,339,338,347,342,341,344,343,346,345,366,365,364,357,356,353,352,351,350,363,362,355,354,359,358,349,348,361,360,379,137,150,149,148,143,144,138,139,140,141,142,146,147,145,53,50,51,52,1,16,2,28,3,26,4,5,17,18,6,20,21,19,27,7,8,9,10,11,12,13,14,24,25,22,23,15,47,45,46,44,381,42,43,49,48,41,40,31,35,32,33,34,37,36,38,39,30,29,[383,[{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":32,"length":7,"messageText":"Cannot find module 'UIKit' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":447,"length":14,"messageText":"Cannot find module 'AVFoundation' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":524,"length":11,"messageText":"Cannot find module 'CoreMedia' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":567,"length":10,"messageText":"Cannot find module 'Dispatch' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":641,"length":11,"messageText":"Cannot find module 'CoreVideo' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":683,"length":12,"messageText":"Cannot find module 'Foundation' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":1216,"length":14,"messageText":"Cannot find module 'AVFoundation' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":2227,"length":10,"messageText":"Duplicate function implementation.","category":1,"code":2393},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":2268,"length":1,"messageText":"Decorators are not valid here.","category":1,"code":1206},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":2321,"length":1,"messageText":"Decorators are not valid here.","category":1,"code":1206},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":2467,"length":10,"messageText":"Duplicate function implementation.","category":1,"code":2393},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":2508,"length":1,"messageText":"Decorators are not valid here.","category":1,"code":1206},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":2568,"length":1,"messageText":"Decorators are not valid here.","category":1,"code":1206},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":2628,"length":1,"messageText":"Decorators are not valid here.","category":1,"code":1206},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":3416,"length":1,"messageText":"Decorators are not valid here.","category":1,"code":1206},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":3483,"length":1,"messageText":"Decorators are not valid here.","category":1,"code":1206},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":3854,"length":15,"messageText":"Cannot find name 'fileURLWithPath'.","category":1,"code":2304},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":3981,"length":3,"code":2339,"category":1,"messageText":"Property 'try' does not exist on type 'UTSiOS'."},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":4002,"length":2,"messageText":"Cannot find name 'to'.","category":1,"code":2304},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":4012,"length":7,"messageText":"Cannot find name 'options'.","category":1,"code":2304},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":4022,"length":6,"messageText":"Cannot find name 'NSData'.","category":1,"code":2304},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":4473,"length":4,"messageText":"Cannot find name 'data'.","category":1,"code":2304},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":4751,"length":18,"messageText":"Cannot find name 'compressionQuality'.","category":1,"code":2304},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":4817,"length":3,"code":2339,"category":1,"messageText":"Property 'try' does not exist on type 'UTSiOS'."},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":4832,"length":2,"messageText":"Cannot find name 'to'.","category":1,"code":2304},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":4842,"length":7,"messageText":"Cannot find name 'options'.","category":1,"code":2304},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":4852,"length":6,"messageText":"Cannot find name 'NSData'. Did you mean 'data'?","category":1,"code":2552,"relatedInformation":[{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":4728,"length":4,"messageText":"'data' is declared here.","category":3,"code":2728}]},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":5838,"length":12,"messageText":"Cannot find name 'UTSComponent'.","category":1,"code":2304},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":6146,"length":12,"messageText":"Cannot find name 'UTSComponent'.","category":1,"code":2304},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":6216,"length":5,"messageText":"'super' can only be referenced in a derived class.","category":1,"code":2335},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":6755,"length":3,"code":2339,"category":1,"messageText":"Property 'try' does not exist on type 'UTSiOS'."},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":7010,"length":5,"messageText":"Cannot find name 'queue'.","category":1,"code":2304},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":7841,"length":7,"messageText":"Cannot find name 'session'.","category":1,"code":2304},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":8623,"length":3,"messageText":"Cannot find name 'for'.","category":1,"code":2304},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":9201,"length":1,"messageText":"Decorators are not valid here.","category":1,"code":1206},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":9260,"length":1,"messageText":"Decorators are not valid here.","category":1,"code":1206},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":9590,"length":3,"messageText":"Cannot find name 'Int'.","category":1,"code":2304},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":9617,"length":3,"messageText":"Cannot find name 'Int'.","category":1,"code":2304},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":9752,"length":3,"messageText":"Cannot find name 'Int'.","category":1,"code":2304},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":9779,"length":3,"messageText":"Cannot find name 'Int'.","category":1,"code":2304},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":11235,"length":3,"code":2339,"category":1,"messageText":"Property 'try' does not exist on type 'UTSiOS'."},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":11770,"length":3,"code":2339,"category":1,"messageText":"Property 'try' does not exist on type 'UTSiOS'."},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":12256,"length":4,"messageText":"Cannot find name 'with'.","category":1,"code":2304},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":12273,"length":8,"messageText":"Cannot find name 'delegate'.","category":1,"code":2304},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":12465,"length":3,"code":2339,"category":1,"messageText":"Property 'try' does not exist on type 'UTSiOS'."},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":13583,"length":15,"messageText":"Cannot find name 'fileURLWithPath'.","category":1,"code":2304},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":13649,"length":2,"messageText":"Cannot find name 'to'.","category":1,"code":2304},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/camera.uts.ts","start":13659,"length":17,"messageText":"Cannot find name 'recordingDelegate'.","category":1,"code":2304}]],384,[385,[{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/index.vue.ts","start":38,"length":7,"messageText":"Cannot find module 'UIKit' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/index.vue.ts","start":1089,"length":8,"code":2345,"category":1,"messageText":"Argument of type 'String' is not assignable to parameter of type 'DevicePosition'."},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/index.vue.ts","start":1361,"length":8,"code":2345,"category":1,"messageText":"Argument of type 'String' is not assignable to parameter of type 'FlashMode'."},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/index.vue.ts","start":2226,"length":3,"code":2339,"category":1,"messageText":"Property '$el' does not exist on type '{ data(): {}; name: string; emits: string[]; props: { mode: { type: StringConstructor; default: string; }; resolution: { type: StringConstructor; default: string; }; position: { ...; }; flash: { ...; }; frameSize: { ...; }; }; ... 10 more ...; unmounted(): void; }'."},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/index.vue.ts","start":2320,"length":10,"code":2339,"category":1,"messageText":"Property 'resolution' does not exist on type '{ data(): {}; name: string; emits: string[]; props: { mode: { type: StringConstructor; default: string; }; resolution: { type: StringConstructor; default: string; }; position: { ...; }; flash: { ...; }; frameSize: { ...; }; }; ... 10 more ...; unmounted(): void; }'."},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/index.vue.ts","start":2353,"length":9,"code":2339,"category":1,"messageText":"Property 'frameSize' does not exist on type '{ data(): {}; name: string; emits: string[]; props: { mode: { type: StringConstructor; default: string; }; resolution: { type: StringConstructor; default: string; }; position: { ...; }; flash: { ...; }; frameSize: { ...; }; }; ... 10 more ...; unmounted(): void; }'."},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/index.vue.ts","start":2390,"length":8,"code":2339,"category":1,"messageText":"Property 'position' does not exist on type '{ data(): {}; name: string; emits: string[]; props: { mode: { type: StringConstructor; default: string; }; resolution: { type: StringConstructor; default: string; }; position: { ...; }; flash: { ...; }; frameSize: { ...; }; }; ... 10 more ...; unmounted(): void; }'."},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/index.vue.ts","start":2417,"length":5,"code":2339,"category":1,"messageText":"Property 'flash' does not exist on type '{ data(): {}; name: string; emits: string[]; props: { mode: { type: StringConstructor; default: string; }; resolution: { type: StringConstructor; default: string; }; position: { ...; }; flash: { ...; }; frameSize: { ...; }; }; ... 10 more ...; unmounted(): void; }'."},{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/index.vue.ts","start":2706,"length":5,"code":2551,"category":1,"messageText":"Property '$emit' does not exist on type '{ data(): {}; name: string; emits: string[]; props: { mode: { type: StringConstructor; default: string; }; resolution: { type: StringConstructor; default: string; }; position: { ...; }; flash: { ...; }; frameSize: { ...; }; }; ... 10 more ...; unmounted(): void; }'. Did you mean 'emits'?","relatedInformation":[{"file":"../../../../dist/dev/.tsc/app-ios/uni_modules/skin-camerauts/utssdk/app-ios/index.vue.ts","start":371,"length":33,"messageText":"'emits' is declared here.","category":3,"code":2728}]}]],382]},"version":"5.2.2"}
\ No newline at end of file
diff --git a/unpackage/cache/uts_custom_android/app-android/uts/uni_modules/Skin-cameraUTS/index.jar b/unpackage/cache/uts_custom_android/app-android/uts/uni_modules/Skin-cameraUTS/index.jar
deleted file mode 100644
index ffa3141..0000000
Binary files a/unpackage/cache/uts_custom_android/app-android/uts/uni_modules/Skin-cameraUTS/index.jar and /dev/null differ
diff --git a/unpackage/cache/uts_custom_android/app-android/uts/uni_modules/Skin-cameraUTS/manifest.json b/unpackage/cache/uts_custom_android/app-android/uts/uni_modules/Skin-cameraUTS/manifest.json
deleted file mode 100644
index 8a07467..0000000
--- a/unpackage/cache/uts_custom_android/app-android/uts/uni_modules/Skin-cameraUTS/manifest.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "version": "1",
- "env": {
- "compilerVersion": "4.87"
- },
- "files": {
- "utssdk/app-android/CameraManager.uts": {
- "md5": "e36a0dff48ecd81fd4fd72e001266289"
- },
- "utssdk/app-android/camera.uts": {
- "md5": "508c7d62fd4aeecebbae1cc07966f15a"
- },
- "utssdk/app-android/index.uts": {
- "md5": "13664ac42171591a65f347ae45fe741b"
- },
- "utssdk/interface.uts": {
- "md5": "ad42bbba6fb76c067b82ab17e0b7f2d2"
- },
- "package.json": {
- "md5": "133398ad40a66c5dffe357524836867a"
- },
- "utssdk/app-android/AndroidManifest.xml": {
- "md5": "7652ee876f4a20f80867fe01bf17a74f"
- },
- "utssdk/app-android/config.json": {
- "md5": "5a79003477b0c0436ccfb8782f8b1be9"
- },
- "utssdk/app-android/index.vue": {
- "md5": "4b27b0ce87deb69b8ab88a79f6e6ef70"
- }
- }
-}
\ No newline at end of file
diff --git a/unpackage/cache/uts_custom_android/uniapp-x-uts.json b/unpackage/cache/uts_custom_android/uniapp-x-uts.json
deleted file mode 100644
index d3ede54..0000000
--- a/unpackage/cache/uts_custom_android/uniapp-x-uts.json
+++ /dev/null
@@ -1 +0,0 @@
-{"duts":["uni-actionSheet","uni-theme","uni-getSystemInfo","uni-base64ToArrayBuffer","uni-arrayBufferToBase64","uni-crash","uni-storage","uni-dialogPage","uni-event","uni-exit","uni-form","uni-getAccessibilityInfo","uni-getAppAuthorizeSetting","uni-getAppBaseInfo","uni-getDeviceInfo","uni-getElementById","uni-getSystemSetting","uni-modal","uni-openAppAuthorizeSetting","uni-privacy","uni-progress","uni-prompt","uni-rpx2px","uni-rich-text"]}
\ No newline at end of file
diff --git a/unpackage/cache/uts_custom_ios/app-ios-debug.json b/unpackage/cache/uts_custom_ios/app-ios-debug.json
deleted file mode 100644
index a00f167..0000000
--- a/unpackage/cache/uts_custom_ios/app-ios-debug.json
+++ /dev/null
@@ -1 +0,0 @@
-{"dir":"/Volumes/Elements/srv_release/bdserver.dcloud.net.cn/service/storage/app/package/IOS/queue/682599b0-1e0f-11f1-9581-8972781ecb49/wgtRoot/__UNI__644401D/"}
\ No newline at end of file
diff --git a/unpackage/cache/uts_custom_ios/app-ios/uts/uni_modules/Skin-cameraUTS/manifest.json b/unpackage/cache/uts_custom_ios/app-ios/uts/uni_modules/Skin-cameraUTS/manifest.json
deleted file mode 100644
index 0e4a90a..0000000
--- a/unpackage/cache/uts_custom_ios/app-ios/uts/uni_modules/Skin-cameraUTS/manifest.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "version": "1",
- "env": {
- "compilerVersion": "4.87"
- },
- "files": {
- "utssdk/app-ios/CameraManager.uts": {
- "md5": "e36a0dff48ecd81fd4fd72e001266289"
- },
- "utssdk/app-ios/camera.uts": {
- "md5": "cafd4abbac9d57f5b49c0e2dd9131515"
- },
- "utssdk/app-ios/index.uts": {
- "md5": "c93aa4536c5df6b2e32603f110bcef83"
- },
- "utssdk/interface.uts": {
- "md5": "ad42bbba6fb76c067b82ab17e0b7f2d2"
- },
- "package.json": {
- "md5": "133398ad40a66c5dffe357524836867a"
- },
- "utssdk/app-ios/config.json": {
- "md5": "f5a5d7ae3ae1349af9816e625de9299f"
- },
- "utssdk/app-ios/index.vue": {
- "md5": "7396593a50cbeff49fcd3c16e279ddf6"
- }
- }
-}
\ No newline at end of file
diff --git a/unpackage/cache/uts_custom_ios/uniapp-x-uts.json b/unpackage/cache/uts_custom_ios/uniapp-x-uts.json
deleted file mode 100644
index afd7bb9..0000000
--- a/unpackage/cache/uts_custom_ios/uniapp-x-uts.json
+++ /dev/null
@@ -1 +0,0 @@
-{"duts":["uni-actionSheet","uni-theme","uni-getSystemInfo","uni-dialogPage","uni-event","uni-base64ToArrayBuffer","uni-arrayBufferToBase64","uni-crash","uni-storage","uni-exit","uni-form","uni-getAccessibilityInfo","uni-getAppAuthorizeSetting","uni-getAppBaseInfo","uni-getDeviceInfo","uni-getElementById","uni-getSystemSetting","uni-modal","uni-openAppAuthorizeSetting","uni-privacy","uni-progress","uni-prompt","uni-rpx2px","uni-rich-text"]}
\ No newline at end of file
diff --git a/unpackage/debug/android_debug.apk b/unpackage/debug/android_debug.apk
deleted file mode 100644
index 5daaf72..0000000
Binary files a/unpackage/debug/android_debug.apk and /dev/null differ
diff --git a/unpackage/debug/iOS_debug.ipa b/unpackage/debug/iOS_debug.ipa
deleted file mode 100644
index 70498e3..0000000
Binary files a/unpackage/debug/iOS_debug.ipa and /dev/null differ
diff --git a/unpackage/dist/build/.tsc/app-android/App.uvue.ts b/unpackage/dist/build/.tsc/app-android/App.uvue.ts
deleted file mode 100644
index 63259ff..0000000
--- a/unpackage/dist/build/.tsc/app-android/App.uvue.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
- let firstBackTime = 0
-
- const __sfc__ = defineApp({
- onLaunch() {
- console.log('App Launch')
- },
- onShow() {
- console.log('App Show')
- },
- onHide() {
- console.log('App Hide')
- },
-
- onLastPageBackPress() {
- console.log('App LastPageBackPress')
- if (firstBackTime == 0) {
- uni.showToast({
- title: '再按一次退出应用',
- position: 'bottom',
- })
- firstBackTime = Date.now()
- setTimeout(() => {
- firstBackTime = 0
- }, 2000)
- } else if (Date.now() - firstBackTime < 2000) {
- firstBackTime = Date.now()
- uni.exit()
- }
- },
-
- onExit() {
- console.log('App Exit')
- },
- })
-
-export default __sfc__
-const GenAppStyles = [_uM([["uni-row", _pS(_uM([["flexDirection", "row"]]))], ["uni-column", _pS(_uM([["flexDirection", "column"]]))]])]
diff --git a/unpackage/dist/build/.tsc/app-android/main.uts.ts b/unpackage/dist/build/.tsc/app-android/main.uts.ts
deleted file mode 100644
index ecfa457..0000000
--- a/unpackage/dist/build/.tsc/app-android/main.uts.ts
+++ /dev/null
@@ -1,41 +0,0 @@
-import App from './App.uvue'
-
-import { createSSRApp } from 'vue'
-export function createApp() {
- const app = createSSRApp(App)
- return {
- app
- }
-}
-export function main(app: IApp) {
- definePageRoutes();
- defineAppConfig();
- (createApp()['app'] as VueApp).mount(app, GenUniApp());
-}
-
-export class UniAppConfig extends io.dcloud.uniapp.appframe.AppConfig {
- override name: string = "SkinCamera"
- override appid: string = "__UNI__644401D"
- override versionName: string = "1.0.0"
- override versionCode: string = "100"
- override uniCompilerVersion: string = "4.87"
-
- constructor() { super() }
-}
-
-import GenPagesIndexIndexClass from './pages/index/index.uvue'
-function definePageRoutes() {
-__uniRoutes.push({ path: "pages/index/index", component: GenPagesIndexIndexClass, meta: { isQuit: true } as UniPageMeta, style: _uM([["navigationBarTitleText","uni-app x"]]) } as UniPageRoute)
-}
-const __uniTabBar: Map | null = null
-const __uniLaunchPage: Map = _uM([["url","pages/index/index"],["style",_uM([["navigationBarTitleText","uni-app x"]])]])
-function defineAppConfig(){
- __uniConfig.entryPagePath = '/pages/index/index'
- __uniConfig.globalStyle = _uM([["navigationBarTextStyle","black"],["navigationBarTitleText","uni-app x"],["navigationBarBackgroundColor","#F8F8F8"],["backgroundColor","#F8F8F8"]])
- __uniConfig.getTabBarConfig = ():Map | null => null
- __uniConfig.tabBar = __uniConfig.getTabBarConfig()
- __uniConfig.conditionUrl = ''
- __uniConfig.uniIdRouter = _uM()
-
- __uniConfig.ready = true
-}
diff --git a/unpackage/dist/build/.tsc/app-android/output.js b/unpackage/dist/build/.tsc/app-android/output.js
deleted file mode 100644
index 81f2095..0000000
--- a/unpackage/dist/build/.tsc/app-android/output.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-require('vue');
-
-uni;
diff --git a/unpackage/dist/build/.tsc/app-android/pages/index/index.uvue.ts b/unpackage/dist/build/.tsc/app-android/pages/index/index.uvue.ts
deleted file mode 100644
index bd21176..0000000
--- a/unpackage/dist/build/.tsc/app-android/pages/index/index.uvue.ts
+++ /dev/null
@@ -1,81 +0,0 @@
-
- import {
- takePhoto,
- TakePhotoOption,
- TakePhotoSuccessCallbackResult,
- GeneralCallbackResult
- } from '@/uni_modules/Skin-cameraUTS'
-
-
- const __sfc__ = defineComponent({
- data() {
- return {
- yanse: "red",
- widthNum: 750,
- heightNum: 200,
-
- flash: "on",
- device: "front",
- imagePath: "",
- videoPath: "https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/2minute-demo.mp4"
- }
- },
- onLoad() {
- // let permissionNeed = ["android.permission.CAMERA", "android.permission.RECORD_AUDIO",
- // "android.permission.WRITE_EXTERNAL_STORAGE"]
- // // 请求权限
- // UTSAndroid.requestSystemPermission(UTSAndroid.getUniActivity()!, permissionNeed, function (allRight : boolean, _ : string[]) {
- // if (allRight) {
- // // 权限请求成功
- // } else {
- // //用户拒绝了部分权限
- // }
- // }, function (_ : boolean, _ : string[]) {
- // //用户拒绝了部分权限
- // })
- },
- methods: {
- onError(res : any) {
- console.log(res)
- },
- _takePhoto() {
- takePhoto({
- success: (res : TakePhotoSuccessCallbackResult) => {
- console.log('takePhoto', res)
- this.imagePath = res.tempImagePath;
- // _previewImage();
- },
- fail: (res : GeneralCallbackResult) => {
- console.log('takePhoto', res)
- }
- } as TakePhotoOption)
- }
- }
- })
-
-export default __sfc__
-function GenPagesIndexIndexRender(this: InstanceType): any | null {
-const _ctx = this
-const _cache = this.$.renderCache
- return _cE("scroll-view", _uM({ class: "page-scroll-view" }), [
- _cE("view", null, [
- _cE("button", _uM({ onClick: _ctx._takePhoto }), "拍照", 8 /* PROPS */, ["onClick"]),
- _cE(XfCameraComponent.name, _uM({
- style: _nS(_uM({"height":"750rpx","background-color":"red"})),
- onError: _ctx.onError,
- flash: _ctx.flash,
- position: _ctx.device
- }), null, 44 /* STYLE, PROPS, NEED_HYDRATION */, ["onError", "flash", "position"]),
- isTrue(_ctx.imagePath)
- ? _cE("image", _uM({
- key: 0,
- mode: "aspectFit",
- src: _ctx.imagePath
- }), null, 8 /* PROPS */, ["src"])
- : _cC("v-if", true)
- ])
- ])
-}
-const GenPagesIndexIndexStyles = [_uM([["video", _pS(_uM([["width", "100%"], ["height", 200]]))]])]
-
-import { XfCameraComponent } from '@/uni_modules/Skin-cameraUTS?uts-proxy'
diff --git a/unpackage/dist/build/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/CameraManager.uts.ts b/unpackage/dist/build/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/CameraManager.uts.ts
deleted file mode 100644
index fb0aafc..0000000
--- a/unpackage/dist/build/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/CameraManager.uts.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { CameraView } from "./camera";
-
-export class CameraManager {
- private cameraView : CameraView | null = null;
-
- private static instance : CameraManager | null = null;
-
- public static getInstance() : CameraManager {
- if (CameraManager.instance == null) {
- CameraManager.instance = new CameraManager();
- }
- return CameraManager.instance!;
- }
-
- public setCameraView(cameraView ?: CameraView) : void {
- this.cameraView = cameraView!
- }
-
- public getCameraView() : CameraView | null {
- return this.cameraView;
- }
-
- public dispose() : void {
- this.cameraView = null;
- }
-}
\ No newline at end of file
diff --git a/unpackage/dist/build/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/camera.uts.ts b/unpackage/dist/build/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/camera.uts.ts
deleted file mode 100644
index e223355..0000000
--- a/unpackage/dist/build/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/camera.uts.ts
+++ /dev/null
@@ -1,474 +0,0 @@
-import ProcessCameraProvider from 'androidx.camera.lifecycle.ProcessCameraProvider'
-import Preview from 'androidx.camera.core.Preview'
-import MirrorMode from 'androidx.camera.core.MirrorMode'
-import PreviewView from 'androidx.camera.view.PreviewView'
-import Context from 'android.content.Context'
-import FrameLayout from 'android.widget.FrameLayout'
-import ViewGroup from 'android.view.ViewGroup'
-import CameraSelector from 'androidx.camera.core.CameraSelector'
-import ImageAnalysis from 'androidx.camera.core.ImageAnalysis'
-import UseCaseGroup from 'androidx.camera.core.UseCaseGroup'
-import ContextCompat from 'androidx.core.content.ContextCompat'
-
-import LifecycleOwner from 'androidx.lifecycle.LifecycleOwner'
-import ImageCapture from 'androidx.camera.core.ImageCapture'
-import Size from 'android.util.Size'
-import ImageCaptureException from 'androidx.camera.core.ImageCaptureException'
-import File from 'java.io.File'
-
-import ImageProxy from 'androidx.camera.core.ImageProxy';
-import CameraControl from 'androidx.camera.core.CameraControl';
-
-import VideoCapture from 'androidx.camera.video.VideoCapture'
-import Recorder from 'androidx.camera.video.Recorder'
-import Recording from 'androidx.camera.video.Recording'
-import FileOutputOptions from 'androidx.camera.video.FileOutputOptions'
-import Quality from 'androidx.camera.video.Quality'
-import QualitySelector from 'androidx.camera.video.QualitySelector'
-import VideoRecordEvent from 'androidx.camera.video.VideoRecordEvent'
-
-// import Bitmap from 'android.graphics.Bitmap';
-// import FileOutputStream from 'java.io.FileOutputStream';
-// import MediaMetadataRetriever from 'android.media.MediaMetadataRetriever';
-
-import ExecutorService from 'java.util.concurrent.ExecutorService'
-import Executors from 'java.util.concurrent.Executors'
-import ImageFormat from 'android.graphics.ImageFormat';
-
-import {
- TakePhotoOption,
- GeneralCallbackResult,
- TakePhotoSuccessCallbackResult,
- CameraContextSetZoomOption,
- SetZoomSuccessCallbackResult,
- CameraContextStopRecordOption,
- CameraContextStartRecordOption,
- StartRecordTimeoutCallbackResult,
- StopRecordSuccessCallbackResult,
- OnCameraFrameCallback,
- OnCameraFrameCallbackResult,
- CameraFrameListenerStartOption,
- StopOption,
-
- CameraConfig,
- FlashMode,
- DevicePosition,
- Resolution,
- //FrameSize,
- QualityType,
- OnCameraFrameListenerOption
-} from '../interface'
-import Bitmap from "android.graphics.Bitmap";
-import FileOutputStream from "java.io.FileOutputStream";
-
-const FLASH_MODE_MAP = new Map([
- ['auto', ImageCapture.FLASH_MODE_AUTO],
- ['on', ImageCapture.FLASH_MODE_ON],
- ['torch', ImageCapture.FLASH_MODE_ON],
- ['off', ImageCapture.FLASH_MODE_OFF],
-])
-const DEVICE_POSITION_MAP = new Map([
- ['back', CameraSelector.LENS_FACING_BACK],
- ['front', CameraSelector.LENS_FACING_FRONT],
-])
-
-
-const RESOLUTION_MAP = new Map([
- ['low', Quality.LOWEST],
- ['medium', Quality.HD],
- ['high', Quality.HIGHEST],
-])
-
-const QUALITY_MAP = new Map([
- ["high", ImageCapture.CAPTURE_MODE_MAXIMIZE_QUALITY],
- ["low", ImageCapture.CAPTURE_MODE_MINIMIZE_LATENCY],
-])
-
-const MIRROR_MODE = new Map([
- [true, MirrorMode.MIRROR_MODE_ON],
- [false, MirrorMode.MIRROR_MODE_OFF],
-])
-
-export class CameraView extends FrameLayout {
- private previewView : PreviewView;
- public cameraProvider : ProcessCameraProvider | null = null;
- public cameraControl : CameraControl | null = null;
- private imageCapture : ImageCapture | null = null
- private videoCapture : VideoCapture | null = null
- private recording : Recording | null = null
- private comp : UTSComponent;
- private flashMode : FlashMode = 'auto'
- private devicePosition : DevicePosition = 'back'
- private resolution : Resolution = 'medium'
- // private frameSize : FrameSize = 'medium'
- private quality : QualityType = 'normal'
- private videoFile : File | null = null
- maxZoom : Float = (1).toFloat()
- minZoom : Float = (1).toFloat()
- private initialized : boolean = false
- private isListening : boolean = false
- private videoSelfieMirror : boolean | null = null
- private cameraContextStopRecordOption : CameraContextStopRecordOption | null = null
- private onCameraFrameCallback : OnCameraFrameCallback | null = null
- private cameraExecutor : ExecutorService | null = null
- private onCameraFrameListenerOption : OnCameraFrameListenerOption | null = null;
-
- constructor(context : Context, comp : UTSComponent, config : CameraConfig = {} as CameraConfig) {
- super(context);
- this.comp = comp
- this.flashMode = config.flash ?? 'auto'
- this.devicePosition = config.devicePosition ?? 'back'
- this.resolution = config.resolution ?? 'medium'
- // this.frameSize = config.frameSize ?? 'medium'
-
- this.previewView = new PreviewView(context);
- let layoutParam = new FrameLayout.LayoutParams(
- ViewGroup.LayoutParams.MATCH_PARENT,
- ViewGroup.LayoutParams.MATCH_PARENT);
- this.addView(this.previewView, layoutParam);
- this.setupCamera()
- }
- setupCamera() {
- // this.checkSelfPermission().then(() => {
- let cameraProviderFuture = ProcessCameraProvider.getInstance(UTSAndroid.getUniActivity()!)
- cameraProviderFuture.addListener(() => {
- try {
- this.cameraProvider = cameraProviderFuture.get()
- this.bindCamera();
- } catch (e) {
- let ret : Map = new Map();
- ret.set("errMsg", JSON.stringify(e))
- this.comp.$emit('error', ret)
- }
- }, ContextCompat.getMainExecutor(UTSAndroid.getUniActivity()!))
- // }).catch((err) => {
- // let ret : Map = new Map();
- // ret.set("errMsg", err ?? '权限不足')
- // this.comp.$emit('error', ret)
- // })
- }
- bindCamera() {
-
- let targetResolution = RESOLUTION_MAP.get(this.resolution) ?? Quality.HD;
- let captureMode = QUALITY_MAP.get(this.quality) ?? ImageCapture.CAPTURE_MODE_MAXIMIZE_QUALITY;
-
- // 创建一个Preview对象,用于显示相机预览
- let preview = new Preview.Builder()
- .build();
- preview.setSurfaceProvider(this.previewView.getSurfaceProvider());
-
- // 创建一个ImageCapture对象,用于拍照
- let imageCapture = new ImageCapture.Builder()
- .setFlashMode(FLASH_MODE_MAP.get(this.flashMode)!)
- .setCaptureMode(captureMode)
- .build();
- // 选择要使用的相机(后置或前置)
- let cameraSelector = new CameraSelector.Builder()
- .requireLensFacing(DEVICE_POSITION_MAP.get(this.devicePosition)!)
- .build();
-
- let recorder = Recorder.Builder()
- .setQualitySelector(QualitySelector.from(targetResolution))
- let mirrorMode = this.videoSelfieMirror == null ? MirrorMode.MIRROR_MODE_ON_FRONT_ONLY : MIRROR_MODE.get(this.videoSelfieMirror!);
- let videoCapture = new VideoCapture.Builder(recorder.build())
- .setMirrorMode(mirrorMode!)
- .build();
-
- this.videoCapture = videoCapture
-
- // 将参数应用到 VideoCapture
- this.imageCapture = imageCapture;
- this.cameraProvider!.unbindAll();
- let imageAnalysis = ImageAnalysis.Builder()
- // .setTargetResolution(new Size(1280, 720))
- .setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)
- .build()
-
- let viewPort = this.previewView.getViewPort()!
- let useCaseGroup = new UseCaseGroup.Builder()
- .addUseCase(preview)
- .addUseCase(imageAnalysis)
- .addUseCase(imageCapture)
- .addUseCase(videoCapture)
- .setViewPort(viewPort)
- .build();
-
- this.cameraExecutor = Executors.newSingleThreadExecutor()
- let _this = this
- class Analyzer implements ImageAnalysis.Analyzer {
- constructor() {
-
- }
- override analyze(image : ImageProxy) {
- if (_this.isListening) {
- let imageFormat = image.getFormat();
- // 获取图像的宽度和高度
- let width = image.width
- let height = image.height
-
- if (imageFormat == ImageFormat.YUV_420_888) {
- _this.onCameraFrameCallback?.({
- width,
- height,
- data: image
- } as OnCameraFrameCallbackResult)
-
- _this.onCameraFrameListenerOption?.success?.({
- width,
- height,
- data: image
- } as OnCameraFrameCallbackResult)
- }
- }
- image.close();
- }
- override getDefaultTargetResolution() : Size {
- // 返回默认的目标分辨率
- return Size(640, 480)
- }
- }
- imageAnalysis.setAnalyzer(this.cameraExecutor!, new Analyzer() as ImageAnalysis.Analyzer)
-
- let camera = this.cameraProvider!.bindToLifecycle(
- UTSAndroid.getUniActivity()! as LifecycleOwner,
- cameraSelector,
- useCaseGroup
- // preview,
- // imageCapture,
- // videoCapture
- );
- this.cameraControl = camera.getCameraControl();
- if (!this.initialized) {
- this.initialized = true
- let zoomState = camera.getCameraInfo().getZoomState().getValue();
- this.maxZoom = zoomState?.getMaxZoomRatio() ?? (1).toFloat();
- this.minZoom = zoomState?.getMinZoomRatio() ?? (1).toFloat();
- let maxZoom = this.maxZoom
-
- let ret : Map = new Map();
- ret.set("maxZoom", maxZoom)
- this.comp.$emit('ready', ret)
- }
-
- }
- unbindCamera() {
- this.cameraProvider?.unbindAll()
- this.cameraExecutor?.shutdown()
- }
- // checkSelfPermission() : Promise {
- // let permissionNeed = ["android.permission.CAMERA", "android.permission.RECORD_AUDIO", "android.permission.READ_EXTERNAL_STORAGE"]
- // return new Promise((resoleve, _) => {
- // resoleve(true);
- // UTSAndroid.requestSystemPermission(UTSAndroid.getUniActivity()!, permissionNeed, function (allRight : boolean, list : string[]) {
- // if (allRight) {
- // resoleve(true);
- // } else {
- // reject(list);
- // }
- // }, function (_ : boolean, grantedList : string[]) {
- // //grantedList
- // reject(grantedList);
- // })
- // })
- // }
- setConfig(config : CameraConfig = {} as CameraConfig) {
- this.flashMode = config.flash ?? 'auto'
- this.devicePosition = config.devicePosition ?? 'back'
- this.resolution = config.resolution ?? 'medium'
- // this.frameSize = config.frameSize ?? 'medium'
- }
- setFlash(mode : FlashMode) {
- this.flashMode = mode
- if (FLASH_MODE_MAP.get(mode) == null || this.imageCapture == null) return
- this.imageCapture!.setFlashMode(FLASH_MODE_MAP.get(mode)!)
- }
- switchCamera(position : DevicePosition) {
- this.devicePosition = position
- if (DEVICE_POSITION_MAP.get(position) == null || this.cameraProvider == null) return
- this.unbindCamera()
- this.bindCamera()
- }
- isResolutionSupported(context : Context, cameraSelector : CameraSelector, targetResolution : Size) : boolean {
- return true
- }
- takePhoto(option : TakePhotoOption) {
- let quality = option.quality ?? "high";
- this.quality = quality;
- if (quality == 'low') {
- this.unbindCamera()
- this.bindCamera()
- }
- // 设置输出目录
- let privateDir = UTSAndroid.getAppCachePath()!;
- const tempFile = new File(privateDir);
- if (!tempFile.exists()) {
- tempFile.mkdirs()
- }
- // 设置文件名
- const photoFile = new File(privateDir, Date.now() + '.png');
-
- // 处理镜像
- let metadata = new ImageCapture.Metadata();
- metadata.setReversedHorizontal(option.selfieMirror ?? DEVICE_POSITION_MAP.get(this.devicePosition)! == CameraSelector.LENS_FACING_FRONT);
-
- const outputOptions = ImageCapture.OutputFileOptions.Builder(photoFile).setMetadata(metadata).build()
- class OnImageSavedCallback implements ImageCapture.OnImageSavedCallback {
- override onImageSaved(outputFileResults : ImageCapture.OutputFileResults) {
- option.success?.({
- tempImagePath: photoFile.getAbsolutePath(),
- quality: quality,
- errMsg: 'ok'
- } as TakePhotoSuccessCallbackResult)
- option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- }
- override onError(err : ImageCaptureException) {
- const result : GeneralCallbackResult = {
- errMsg: err.toString()
- }
- option.fail?.(result)
- option.complete?.(result)
- }
- override onCaptureStarted() {
-
- }
- }
- this.imageCapture!.takePicture(outputOptions, ContextCompat.getMainExecutor(UTSAndroid.getUniActivity()!), new OnImageSavedCallback() as ImageCapture.OnImageSavedCallback)
-
- }
- setZoom(option : CameraContextSetZoomOption) {
- if (this.cameraControl != null) {
- try {
- this.cameraControl!.setZoomRatio(option.zoom.toFloat())
- option.success?.({
- zoom: option.zoom,
- errMsg: 'ok'
- } as SetZoomSuccessCallbackResult)
- option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- } catch (e) {
- const result : GeneralCallbackResult = {
- errMsg: e.toString()
- }
- option.complete?.(result)
- option.fail?.(result)
- }
- } else {
- const result : GeneralCallbackResult = {
- errMsg: '相机不存在'
- }
- option.complete?.(result)
- option.fail?.(result)
- }
- }
- startRecord(option : CameraContextStartRecordOption) {
- if (option.selfieMirror != null && this.videoSelfieMirror != option.selfieMirror) {
- this.videoSelfieMirror = option.selfieMirror
- this.unbindCamera()
- this.bindCamera()
- }
- if (this.recording != null || this.videoCapture == null) {
- option.fail?.({
- errMsg: '已经在录制或相机不存在'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '已经在录制或相机不存在'
- } as GeneralCallbackResult)
- return
- }
- // 设置输出目录
- let privateDir = UTSAndroid.getAppCachePath()!;
- // 设置文件名
- this.videoFile = new File(privateDir, Date.now() + 'video.mp4');
- let outputFileOptions = new FileOutputOptions.Builder(this.videoFile!).build();
-
-
- this.recording = this.videoCapture!.output
- .prepareRecording(UTSAndroid.getUniActivity()!, outputFileOptions)
- .withAudioEnabled()
- // .apply(()=>{
- // })
- .start(ContextCompat.getMainExecutor(UTSAndroid.getUniActivity()!), (recordEvent : VideoRecordEvent) => {
- if (recordEvent instanceof VideoRecordEvent.Start) {
- option.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
-
- if (option.timeout != null && option.timeout! > 0) {
- setTimeout(() => {
- this.recording?.stop()
- }, option.timeout!)
- }
- } else if (recordEvent instanceof VideoRecordEvent.Finalize) {
- this.recording?.close()
- this.recording = null
- let tempVideoPath = this.videoFile?.getAbsolutePath()!
- //let tempThumbPath = extractThumbnail(tempVideoPath) ?? ''
- this.cameraContextStopRecordOption?.success?.({
- tempVideoPath,
- errMsg: 'ok'
- } as StopRecordSuccessCallbackResult)
-
- option.timeoutCallback?.({
- tempVideoPath,
- } as StartRecordTimeoutCallbackResult)
- }
- })
- }
- stopRecord(option : CameraContextStopRecordOption) {
- if (this.recording == null) {
- option.fail?.({
- errMsg: '未开始录制'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未开始录制'
- } as GeneralCallbackResult)
- return
- }
- this.cameraContextStopRecordOption = option
- this.recording?.stop()
- }
- onCameraFrame(callback : OnCameraFrameCallback | null = null) {
- this.onCameraFrameCallback = callback
- }
-
- onCameraFrameListener(option : OnCameraFrameListenerOption) {
- this.onCameraFrameListenerOption = option
- }
-
- cameraFrameOnStart(option ?: CameraFrameListenerStartOption) {
- this.isListening = true
- option?.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- }
- cameraFrameOnStop(option ?: StopOption) {
- this.isListening = false
- option?.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- }
-
-}
-
-
-// // 从视频文件中提取封面的函数
-// function extractThumbnail(videoUri : string) : string | null {
-// let retriever = new MediaMetadataRetriever()
-// retriever.setDataSource(videoUri)
-// // 提取视频的某一帧作为封面
-// let thumbnail = retriever.frameAtTime
-// // 保存封面到文件
-// if (thumbnail != null) {
-// let privateDir = UTSAndroid.getAppCachePath();
-// const thumbnailFile = new File(privateDir, Date.now() + '_thumbnail.jpg');
-// let outputStream = FileOutputStream(thumbnailFile)
-// thumbnail.compress(Bitmap.CompressFormat.JPEG, 90, outputStream)
-// outputStream.close()
-// return thumbnailFile.getAbsolutePath()
-// }
-// retriever.release()
-// return null
-// }
\ No newline at end of file
diff --git a/unpackage/dist/build/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/index.uts.ts b/unpackage/dist/build/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/index.uts.ts
deleted file mode 100644
index 4165925..0000000
--- a/unpackage/dist/build/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/index.uts.ts
+++ /dev/null
@@ -1,252 +0,0 @@
-import { CameraView } from './camera'
-import {
- TakePhotoOption,
- GeneralCallbackResult,
- CameraContextSetZoomOption,
- CameraContextStartRecordOption,
- CameraContextStopRecordOption,
- // CameraFrameListener,
- OnCameraFrameCallback,
- // OnCameraFrameCallbackResult,
- CameraFrameListenerStartOption,
- StopOption,
- TakePhoto,
- SetZoom,
- StartRecord,
- StopRecord,
- StartCameraFrame,
- StopCameraFrame,
- OnCameraFrameListenerOption,
- SwitchOption,
- SwitchCamera
-} from '../interface'
-import { CameraManager } from "./CameraManager";
-
-
-class CameraFrameListener {
- context : CameraContext
- constructor(context : CameraContext) {
- this.context = context
- }
- start() : void
- start(option ?: CameraFrameListenerStartOption) {
- this.context.getCamera().then((camera : CameraView) => {
- camera.cameraFrameOnStart(option)
- })
- }
- stop() : void
- stop(option ?: StopOption) {
- this.context.getCamera().then((camera : CameraView) => {
- camera.cameraFrameOnStop(option)
- })
- }
-}
-
-class CameraContext {
- private mCameraFrameListener : CameraFrameListener | null = null
- constructor() {
- }
- getCamera() : Promise {
- let cameraPreview = CameraManager.getInstance().getCameraView()
- if (cameraPreview != null) {
- return Promise.resolve(cameraPreview);
- }
- let resolveFunc : ((res : CameraView) => void) | null = null
- let rejectFunc : ((res : string) => void) | null = null
-
- let maxAttempts : number = 5
- let currentAttempt : number = 0
-
- function attemptGetCamera() {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera !== null) {
- resolveFunc?.(camera)
- } else if (currentAttempt < maxAttempts) {
- currentAttempt++
- setTimeout(() => {
- attemptGetCamera()
- }, 100)
- } else {
- rejectFunc?.('Camera not found after multiple attempts')
- }
- }
- return new Promise((resolve, reject) => {
- resolveFunc = resolve
- rejectFunc = reject
- attemptGetCamera()
- })
- }
-
-
- takePhoto(option : TakePhotoOption) {
- this.getCamera().then((camera : CameraView) => {
- camera.takePhoto(option)
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- })
-
- }
- setZoom(option : CameraContextSetZoomOption) {
- this.getCamera().then((camera : CameraView) => {
- camera.setZoom(option)
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- })
- }
- startRecord(option : CameraContextStartRecordOption) {
- this.getCamera().then((camera : CameraView) => {
- camera.startRecord(option)
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- })
- }
- stopRecord(option : CameraContextStopRecordOption) {
- this.getCamera().then((camera : CameraView) => {
- camera.stopRecord(option)
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- })
- }
- onCameraFrame() : CameraFrameListener
- onCameraFrame(callback : OnCameraFrameCallback | null = null) : CameraFrameListener {
- if (this.mCameraFrameListener == null) {
- this.mCameraFrameListener = new CameraFrameListener(this)
- }
- this.getCamera().then((camera : CameraView) => {
- camera.onCameraFrame(callback)
- })
- return this.mCameraFrameListener!
- }
- //////////////////////////////////////////////////////
- onCameraFrameListener(option : OnCameraFrameListenerOption) {
- this.getCamera().then((camera : CameraView) => {
- camera.onCameraFrameListener(option)
- }).catch(() => {
- console.log("未找到相机")
- })
- }
-
- cameraFrameOnStart(option : CameraFrameListenerStartOption) {
- this.getCamera().then((camera : CameraView) => {
- camera.cameraFrameOnStart(option)
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- })
- }
-
- cameraFrameOnStop(option : StopOption) {
- this.getCamera().then((camera : CameraView) => {
- camera.cameraFrameOnStop(option)
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- })
- }
-
- switchCamera(option : SwitchOption) {
- this.getCamera().then((camera : CameraView) => {
- camera.switchCamera(option.position)
-
- option.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- })
- }
-}
-
-let context : CameraContext = new CameraContext();
-
-export function createCameraContext() : CameraContext {
- return context;
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-
-export const takePhoto : TakePhoto = function (options : TakePhotoOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.takePhoto(options)
- }, null)
-}
-
-export const setZoom : SetZoom = function (options : CameraContextSetZoomOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.setZoom(options)
- }, null)
-}
-
-export const startRecord : StartRecord = function (options : CameraContextStartRecordOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.startRecord(options)
- }, null)
-}
-
-export const stopRecord : StopRecord = function (options : CameraContextStopRecordOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.stopRecord(options)
- }, null)
-}
-
-@UTSJS.keepAlive
-export function onCameraFrameListener(options : OnCameraFrameListenerOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.onCameraFrameListener(options)
- }, null)
-}
-
-export const startCameraFrame : StartCameraFrame = function (options : CameraFrameListenerStartOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.cameraFrameOnStart(options)
- }, null)
-}
-
-export const stopCameraFrame : StopCameraFrame = function (options : StopOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.cameraFrameOnStop(options)
- }, null)
-}
-
-
-export const switchCamera : SwitchCamera = function (options : SwitchOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.switchCamera(options)
- }, null)
-}
\ No newline at end of file
diff --git a/unpackage/dist/build/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/index.vue.ts b/unpackage/dist/build/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/index.vue.ts
deleted file mode 100644
index 4f8e72c..0000000
--- a/unpackage/dist/build/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/index.vue.ts
+++ /dev/null
@@ -1,151 +0,0 @@
-//
-//
-//
-//
-//
-
- import { CameraView } from './camera';
- import { CameraConfig } from '../interface'
- import { CameraManager } from './CameraManager';
-
- //原生提供以下属性或方法的实现
- export default {
- /**
- * 组件名称,也就是开发者使用的标签
- */
- name: "xf-camera",
- /**
- * 组件涉及的事件声明,只有声明过的事件,才能被正常发送
- */
- emits: ['stop', 'error', 'ready'],
- /**
- * 属性声明,组件的使用者会传递这些属性值到组件
- */
- props: {
- "mode": {
- type: String,
- default: "normal"
- },
- "resolution": {
- type: String,
- default: "medium" // low | high
- },
- "position": {
- type: String,
- default: "back" // front前置 |back 后置
- },
- "flash": {
- type: String,
- default: "auto" // auto, on, off, torch
- },
- "frameSize": {
- type: String,
- default: "medium" // small|large
- }
- },
- /**
- * 组件内部变量声明
- */
- data() {
- return {}
- },
- /**
- * 属性变化监听器实现
- */
- watch: {
- "position": {
- /**
- * 这里监听属性变化,并进行组件内部更新
- */
- handler(newValue : string, _ : string) {
- this.$el?.switchCamera(newValue)
- },
- immediate: false // 创建时是否通过此方法更新属性,默认值为false
- },
- "flash": {
- /**
- * 这里监听属性变化,并进行组件内部更新
- */
- handler(newValue : string, _ : string) {
- this.$el?.setFlash(newValue)
- },
- immediate: false // 创建时是否通过此方法更新属性,默认值为false
-
- }
- },
- /**
- * 规则:如果没有配置expose,则methods中的方法均对外暴露,如果配置了expose,则以expose的配置为准向外暴露
- * ['publicMethod'] 含义为:只有 `publicMethod` 在实例上可用
- */
- expose: [],
- methods: {
-
- },
- /**
- * [可选实现] 组件被创建,组件第一个生命周期,
- * 在内存中被占用的时候被调用,开发者可以在这里执行一些需要提前执行的初始化逻辑
- */
- created() {
-
- },
- /**
- * [可选实现] 对应平台的view载体即将被创建,对应前端beforeMount
- */
- NVBeforeLoad() {
-
- },
- /**
- * [必须实现] 创建原生View,必须定义返回值类型
- * 开发者需要重点实现这个函数,声明原生组件被创建出来的过程,以及最终生成的原生组件类型
- * (Android需要明确知道View类型,需特殊校验)
- */
- NVLoad() : CameraView {
- let previewView = new CameraView(this.$androidContext!, this)
- previewView.setTag("9527");
- CameraManager.getInstance().setCameraView(previewView);
- return previewView
-
- },
- /**
- * [可选实现] 原生View已创建
- */
- NVLoaded() {
-
- },
- /**
- * [可选实现] 原生View布局完成
- */
- NVLayouted() {
- this.$el?.setConfig({
- resolution: this.resolution,
- frameSize: this.frameSize,
- flash: this.flash
- } as CameraConfig)
- this.$el?.switchCamera(this.position)
- },
- /**
- * [可选实现] 原生View将释放
- */
- NVBeforeUnload() {
- let ret : Map = new Map();
- this.$emit('stop', ret)
-
- this.$el?.unbindCamera()
- },
- /**
- * [可选实现] 原生View已释放,这里可以做释放View之后的操作
- */
- NVUnloaded() {
- CameraManager.getInstance().dispose();
- },
- /**
- * [可选实现] 组件销毁
- */
- unmounted() {
-
- },
- }
-/*
-
-
-*/
\ No newline at end of file
diff --git a/unpackage/dist/build/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-ios/CameraManager.uts.ts b/unpackage/dist/build/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-ios/CameraManager.uts.ts
deleted file mode 100644
index fb0aafc..0000000
--- a/unpackage/dist/build/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-ios/CameraManager.uts.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { CameraView } from "./camera";
-
-export class CameraManager {
- private cameraView : CameraView | null = null;
-
- private static instance : CameraManager | null = null;
-
- public static getInstance() : CameraManager {
- if (CameraManager.instance == null) {
- CameraManager.instance = new CameraManager();
- }
- return CameraManager.instance!;
- }
-
- public setCameraView(cameraView ?: CameraView) : void {
- this.cameraView = cameraView!
- }
-
- public getCameraView() : CameraView | null {
- return this.cameraView;
- }
-
- public dispose() : void {
- this.cameraView = null;
- }
-}
\ No newline at end of file
diff --git a/unpackage/dist/build/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-ios/camera.uts.ts b/unpackage/dist/build/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-ios/camera.uts.ts
deleted file mode 100644
index 2a33868..0000000
--- a/unpackage/dist/build/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-ios/camera.uts.ts
+++ /dev/null
@@ -1,469 +0,0 @@
-import { UIImage, UIView } from 'UIKit';
-import { AVCaptureDevice, AVCaptureDeviceInput, AVCaptureSession, AVCaptureVideoPreviewLayer, AVMediaType, AVLayerVideoGravity, AVCaptureVideoDataOutput, AVCaptureVideoDataOutputSampleBufferDelegate, AVCaptureOutput, AVCaptureConnection, AVCapturePhotoOutput, AVCapturePhotoSettings, AVCapturePhotoCaptureDelegate, AVCaptureMovieFileOutput, AVCaptureFileOutputRecordingDelegate, AVCaptureFileOutput } from "AVFoundation";
-import { CMSampleBuffer, CMSampleBufferGetImageBuffer } from 'CoreMedia';
-import { DispatchQueue } from 'Dispatch';
-import { CVPixelBufferGetWidth, CVPixelBufferGetHeight } from "CoreVideo";
-import { NSError, URL } from "Foundation";
-
-import {
- TakePhotoOption,
- GeneralCallbackResult,
- TakePhotoSuccessCallbackResult,
- CameraContextSetZoomOption,
- SetZoomSuccessCallbackResult,
- CameraContextStopRecordOption,
- CameraContextStartRecordOption,
- StartRecordTimeoutCallbackResult,
- StopRecordSuccessCallbackResult,
- OnCameraFrameCallback,
- OnCameraFrameCallbackResult,
- OnCameraFrameListenerOption,
- CameraFrameListenerStartOption,
- StopOption,
-
- CameraConfig,
- FlashMode,
- DevicePosition,
- Resolution
-} from '../interface'
-import { AVCapturePhoto } from 'AVFoundation';
-
-
-
-const RESOLUTION_MAP = new Map([
- ['low', AVCaptureSession.Preset.low],
- ['medium', AVCaptureSession.Preset.medium],
- ['high', AVCaptureSession.Preset.high],
-])
-
-const FLASH_MODE_MAP = new Map([
- ['auto', AVCaptureDevice.TorchMode.auto],
- ['on', AVCaptureDevice.TorchMode.on],
- ['torch', AVCaptureDevice.TorchMode.on],
- ['off', AVCaptureDevice.TorchMode.off],
-])
-
-
-let fileOutputRecordingDelegate : MyAVCaptureFileOutputRecordingDelegate | null = null;
-let capturePhotoCaptureDelegate : MyAVCapturePhotoCaptureDelegate | null = null;
-let onCameraFrameListenerOption : OnCameraFrameListenerOption | null = null;
-let cameraContextStopRecordOption : CameraContextStopRecordOption | null = null;
-
-class MyAVCaptureFileOutputRecordingDelegate implements AVCaptureFileOutputRecordingDelegate {
- private option : CameraContextStartRecordOption;
-
- constructor(option : CameraContextStartRecordOption) {
- this.option = option;
- }
-
- fileOutput(output : AVCaptureFileOutput, @argumentLabel("didStartRecordingTo") fileURL : URL, @argumentLabel("from") connections : [AVCaptureConnection]) : void {
- this.option.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- }
-
- fileOutput(output : AVCaptureFileOutput, @argumentLabel("didFinishRecordingTo") outputFileURL : URL, @argumentLabel("from") connections : [AVCaptureConnection], @argumentLabel("error") error ?: NSError) : void {
- if (error == null) {
- cameraContextStopRecordOption?.success?.({
- tempVideoPath: outputFileURL.path + "",
- errMsg: 'ok'
- } as StopRecordSuccessCallbackResult)
-
- this.option.timeoutCallback?.({
- tempVideoPath: outputFileURL.path + ""
- } as StartRecordTimeoutCallbackResult)
- } else {
- cameraContextStopRecordOption?.fail?.({
- errMsg: '录制失败'
- } as GeneralCallbackResult)
- cameraContextStopRecordOption?.complete?.({
- errMsg: '录制失败'
- } as GeneralCallbackResult)
- }
-
- }
-
-}
-
-class MyAVCapturePhotoCaptureDelegate implements AVCapturePhotoCaptureDelegate {
- private option : TakePhotoOption;
-
- constructor(option : TakePhotoOption) {
- this.option = option;
- }
-
- captureOutput(output : AVCapturePhotoOutput, @argumentLabel("didFinishProcessingPhoto") photo : AVCapturePhoto, @argumentLabel("error") error : Error) : void {
- let imageData = photo.fileDataRepresentation()
- if (imageData == null) {
- const result : GeneralCallbackResult = {
- errMsg: "拍照失败"
- }
- this.option.fail?.(result)
- this.option.complete?.(result)
- return;
- }
- let path = UTSiOS.getDataPath() + (new Date().getTime()).toString() + ".jpg";
- let url = new URL(fileURLWithPath = path);
-
- let quality = this.option.quality ?? "original"
- if (quality == 'original') {
- try {
- UTSiOS.try(imageData!.write(to = url, options = NSData.WritingOptions.atomic))
-
- this.option.success?.({
- tempImagePath: path,
- quality: quality,
- errMsg: 'ok'
- } as TakePhotoSuccessCallbackResult)
- this.option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- } catch (e) {
- const result : GeneralCallbackResult = {
- errMsg: JSON.stringify(e)
- }
- this.option.fail?.(result)
- this.option.complete?.(result)
- }
- } else {
- let image = UIImage(data = imageData!)
- if (image != null) {
- let _quality : number = 0.5;
- if (quality == 'high') {
- _quality = 1.0;
- } else if (quality == 'normal') {
- _quality = 0.8;
- } else if (quality == 'low') {
- _quality = 0.5;
- }
- let data = image!.jpegData(compressionQuality = _quality.toDouble())!
-
- try {
- UTSiOS.try(data.write(to = url, options = NSData.WritingOptions.atomic))
-
- this.option.success?.({
- tempImagePath: path,
- quality: quality,
- errMsg: 'ok'
- } as TakePhotoSuccessCallbackResult)
- this.option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- } catch (e) {
- const result : GeneralCallbackResult = {
- errMsg: JSON.stringify(e)
- }
- this.option.fail?.(result)
- this.option.complete?.(result)
- }
- } else {
- const result : GeneralCallbackResult = {
- errMsg: "拍照失败"
- }
- this.option.fail?.(result)
- this.option.complete?.(result)
- }
- }
- }
-
-}
-
-export class CameraView implements AVCaptureVideoDataOutputSampleBufferDelegate {
-
- private captureSession ?: AVCaptureSession;
- private videoDeviceInput ?: AVCaptureDeviceInput;
- private photoDeviceOutput ?: AVCapturePhotoOutput;
- private movieDeviceOutput ?: AVCaptureMovieFileOutput;
- private previewLayer ?: AVCaptureVideoPreviewLayer;
- private previewView ?: UIView;
- private comp ?: UTSComponent;
- private flashMode : FlashMode = 'auto'
- private devicePosition : DevicePosition = 'back'
- private resolution : Resolution = 'medium'
- private isListening : boolean = false
- private onCameraFrameCallback : OnCameraFrameCallback | null = null;
-
- constructor(previewView : UIView, comp : UTSComponent, config : CameraConfig = {} as CameraConfig) {
- super.init();
- this.previewView = previewView
- this.comp = comp
- this.flashMode = config.flash ?? 'auto'
- this.devicePosition = config.devicePosition ?? 'back'
- this.resolution = config.resolution ?? 'medium'
- this.setupCamera();
- }
-
- setupCamera() {
- this.captureSession = new AVCaptureSession();
- let targetResolution = RESOLUTION_MAP.get(this.resolution) ?? AVCaptureSession.Preset.high;
- this.captureSession!.sessionPreset = targetResolution;
- let device = this.getCameraDevice();
- try {
- //相机
- let deviceInput = UTSiOS.try(new AVCaptureDeviceInput(device = device))
- if (this.captureSession!.canAddInput(deviceInput)) {
- this.captureSession!.addInput(deviceInput);
- }
- //实时流输出
- let output = new AVCaptureVideoDataOutput();
- output.setSampleBufferDelegate(this, queue = DispatchQueue.main);
- if (this.captureSession!.canAddOutput(output)) {
- this.captureSession!.addOutput(output);
- }
-
- let photoOutput = new AVCapturePhotoOutput();
- // let photoSettings = new AVCapturePhotoSettings(format = [AVVideoCodecKey = AVVideoCodecType.jpeg]);
- // photoOutput.setPreparedPhotoSettingsArray([photoSettings], completionHandler = null);
- if (this.captureSession!.canAddOutput(photoOutput)) {
- this.captureSession!.addOutput(photoOutput);
- }
-
- let movieOutput = new AVCaptureMovieFileOutput();
- if (this.captureSession!.canAddOutput(movieOutput)) {
- this.captureSession!.addOutput(movieOutput);
- }
-
- this.videoDeviceInput = deviceInput;
- this.photoDeviceOutput = photoOutput;
- this.movieDeviceOutput = movieOutput;
- this.previewLayer = new AVCaptureVideoPreviewLayer(session = this.captureSession!)
- this.previewLayer!.videoGravity = AVLayerVideoGravity.resizeAspectFill;
- this.previewLayer!.frame = this.previewView!.layer.bounds;
- this.previewView!.layer.addSublayer(this.previewLayer!)
- this.captureSession!.startRunning();
-
- let ret : Map = new Map();
- ret.set("maxZoom", device.maxAvailableVideoZoomFactor)
- let detail : Map = new Map();
- detail.set("detail", ret)
- this.comp?.$emit("ready", detail);
- } catch (e) {
- let ret : Map = new Map();
- ret.set("errMsg", JSON.stringify(e))
- let detail : Map = new Map();
- detail.set("detail", ret)
- this.comp?.$emit("error", detail);
- }
- }
-
- getCameraDevice() : AVCaptureDevice {
- let cameras = AVCaptureDevice.devices(for = AVMediaType.video)
- let frontCamera : AVCaptureDevice | null = null;
- let backCamera : AVCaptureDevice | null = null;
-
- let index = 0;
- while (index < cameras.length) {
- if (index == cameras.length) {
- break;
- }
- let camera = cameras[index.toInt()] as AVCaptureDevice;
- if (camera.position == AVCaptureDevice.Position.back) {
- backCamera = camera;
- } else {
- frontCamera = camera;
- }
- index++;
- }
-
- if (this.devicePosition == 'back') {
- return backCamera!;
- } else {
- return frontCamera!;
- }
- }
-
- captureOutput(output : AVCaptureOutput, @argumentLabel("didOutput") sampleBuffer : CMSampleBuffer, @argumentLabel("from") connection : AVCaptureConnection) : void {
-
- if (this.isListening) {
- let imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer)
- let width = CVPixelBufferGetWidth(imageBuffer!)
- let height = CVPixelBufferGetHeight(imageBuffer!);
-
- const res : OnCameraFrameCallbackResult = {
- width: width as Int,
- height: height as Int,
- data: imageBuffer!
- };
- this.onCameraFrameCallback?.(res)
- onCameraFrameListenerOption?.success?.({
- width: width as Int,
- height: height as Int,
- data: imageBuffer!
- } as OnCameraFrameCallbackResult)
-
- // this.onCameraFrameListenerOption?.success({
- // width: width as Int,
- // height: height as Int,
- // data: imageBuffer!
- // } as OnCameraFrameCallbackResult)
-
-
- // if (imageBuffer != null) {
- // let ciImage = new CIImage(cvPixelBuffer = imageBuffer!)
- // let temporaryContext = new CIContext(options = null)
- // let width = CVPixelBufferGetWidth(imageBuffer!)
- // let height = CVPixelBufferGetHeight(imageBuffer!);
- // let videoImage = temporaryContext.createCGImage(ciImage, from = new CGRect(x = 0, y = 0, width = width, height = height))
- // let image = new UIImage(cgImage = videoImage!)
-
- // this.onCameraFrameCallback?.({
- // width: width as Int,
- // height: height as Int,
- // data: image
- // } as OnCameraFrameCallbackResult)
- // }
- }
- }
-
- bindCamera() {
- this.captureSession!.startRunning();
- }
-
-
- unbindCamera() {
- this.captureSession!.stopRunning();
- }
-
-
- setConfig(config : CameraConfig = {} as CameraConfig) {
- this.flashMode = config.flash ?? 'auto'
- this.devicePosition = config.devicePosition ?? 'back'
- this.resolution = config.resolution ?? 'medium'
- }
-
- setFlash(mode : FlashMode) {
- this.flashMode = mode
- let targetFlash = FLASH_MODE_MAP.get(this.flashMode) ?? AVCaptureDevice.TorchMode.auto;
- try {
- let device = this.getCameraDevice();
- if (device.hasTorch && device.isTorchAvailable) {
- UTSiOS.try(device.lockForConfiguration());
- device.torchMode = targetFlash;
- device.unlockForConfiguration()
- }
- } catch (e) {
- console.log(e)
- }
- }
-
-
- switchCamera(position : DevicePosition) {
- if (!this.captureSession!.isRunning) {
- return;
- }
- this.devicePosition = position;
- try {
- this.captureSession!.beginConfiguration();
- this.captureSession!.removeInput(this.videoDeviceInput!);
- let device = this.getCameraDevice();
-
- let deviceInput = UTSiOS.try(new AVCaptureDeviceInput(device = device))
- this.captureSession!.addInput(deviceInput);
- this.videoDeviceInput = deviceInput;
- this.captureSession!.commitConfiguration();
- } catch (e) {
- console.log(e)
- }
- }
-
- takePhoto(option : TakePhotoOption) {
- capturePhotoCaptureDelegate = new MyAVCapturePhotoCaptureDelegate(option);
- let settings = new AVCapturePhotoSettings()
- this.photoDeviceOutput?.capturePhoto(with = settings, delegate = capturePhotoCaptureDelegate!);
- }
-
-
- setZoom(option : CameraContextSetZoomOption) {
- try {
- let device = this.getCameraDevice();
- // if (device.isRampingVideoZoom) {
- UTSiOS.try(device.lockForConfiguration());
- device.videoZoomFactor = option.zoom.toDouble();
- device.unlockForConfiguration()
-
- option.success?.({
- zoom: option.zoom,
- errMsg: 'ok'
- } as SetZoomSuccessCallbackResult)
- option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- // } else {
- // const result : GeneralCallbackResult = {
- // errMsg: '相机不支持缩放'
- // }
- // option.complete?.(result)
- // option.fail?.(result)
- // }
- } catch (e) {
- const result : GeneralCallbackResult = {
- errMsg: JSON.stringify(e)
- }
- option.complete?.(result)
- option.fail?.(result)
- }
- }
-
- startRecord(option : CameraContextStartRecordOption) {
- let isRecording = this.movieDeviceOutput?.isRecording ?? false;
- if (isRecording) {
- option.fail?.({
- errMsg: '已经在录制或相机不存在'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '已经在录制或相机不存在'
- } as GeneralCallbackResult)
- return
- }
-
- fileOutputRecordingDelegate = new MyAVCaptureFileOutputRecordingDelegate(option);
- let path = UTSiOS.getDataPath() + (new Date().getTime()).toString() + ".mp4";
- let url = new URL(fileURLWithPath = path);
- this.movieDeviceOutput?.startRecording(to = url, recordingDelegate = fileOutputRecordingDelegate!);
-
- if (option.timeout != null && option.timeout! > 0) {
- setTimeout(() => {
- this.movieDeviceOutput?.stopRecording();
- }, (option.timeout!).toInt())
- }
- }
-
-
- stopRecord(option : CameraContextStopRecordOption) {
- let isRecording = this.movieDeviceOutput?.isRecording ?? false;
- if (!isRecording) {
- option.fail?.({
- errMsg: '未开始录制'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未开始录制'
- } as GeneralCallbackResult)
- return
- }
- cameraContextStopRecordOption = option;
- this.movieDeviceOutput?.stopRecording();
- }
-
-
- onCameraFrame(callback : OnCameraFrameCallback | null = null) {
- this.onCameraFrameCallback = callback
- }
-
- onCameraFrameListener(option : OnCameraFrameListenerOption) {
- onCameraFrameListenerOption = option
- }
-
- cameraFrameOnStart(option ?: CameraFrameListenerStartOption) {
- this.isListening = true
- option?.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- }
-
- cameraFrameOnStop(option ?: StopOption) {
- this.isListening = false
- option?.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- }
-}
\ No newline at end of file
diff --git a/unpackage/dist/build/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.uts.ts b/unpackage/dist/build/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.uts.ts
deleted file mode 100644
index b254595..0000000
--- a/unpackage/dist/build/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.uts.ts
+++ /dev/null
@@ -1,207 +0,0 @@
-import {
- TakePhotoOption,
- GeneralCallbackResult,
- CameraContextSetZoomOption,
- CameraContextStartRecordOption,
- CameraContextStopRecordOption,
- OnCameraFrameCallback,
- CameraFrameListenerStartOption,
- StopOption,
- TakePhoto,
- SetZoom,
- StartRecord,
- StopRecord,
- StartCameraFrame,
- StopCameraFrame,
- OnCameraFrameListenerOption,
- SwitchCamera,
- SwitchOption
-} from '../interface'
-import { CameraManager } from './CameraManager';
-
-class CameraFrameListener {
- context : CameraContext
- constructor(context : CameraContext) {
- this.context = context
- }
- start() : void
- start(option ?: CameraFrameListenerStartOption) {
- CameraManager.getInstance().getCameraView()?.cameraFrameOnStart(option)
- }
- stop() : void
- stop(option ?: StopOption) {
- CameraManager.getInstance().getCameraView()?.cameraFrameOnStop(option)
- }
-}
-
-class CameraContext {
- private mCameraFrameListener : CameraFrameListener | null = null
-
- constructor() {
-
- }
-
- takePhoto(option : TakePhotoOption) {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- return;
- }
- camera?.takePhoto(option)
- }
-
- setZoom(option : CameraContextSetZoomOption) {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- return;
- }
-
- camera?.setZoom(option)
- }
-
- startRecord(option : CameraContextStartRecordOption) {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- return;
- }
- camera?.startRecord(option)
- }
-
- stopRecord(option : CameraContextStopRecordOption) {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- return;
- }
- camera?.stopRecord(option)
- }
-
- onCameraFrame() : CameraFrameListener
- onCameraFrame(callback : OnCameraFrameCallback | null = null) : CameraFrameListener {
- if (this.mCameraFrameListener == null) {
- this.mCameraFrameListener = new CameraFrameListener(this)
- }
- CameraManager.getInstance().getCameraView()?.onCameraFrame(callback)
- return this.mCameraFrameListener!
- }
- //////////////////////////////////////////////////////
- onCameraFrameListener(option : OnCameraFrameListenerOption) {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera == null) {
- return;
- }
- camera?.onCameraFrameListener(option)
- }
-
- cameraFrameOnStart(option : CameraFrameListenerStartOption) {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- return;
- }
- camera?.cameraFrameOnStart(option)
- }
-
- cameraFrameOnStop(option : StopOption) {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- return;
- }
- camera?.cameraFrameOnStop(option)
- }
-
- switchCamera(option : SwitchOption) {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- return;
- }
- camera?.switchCamera(option.position)
-
- option.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- }
-}
-
-let context : CameraContext = new CameraContext();
-
-export function createCameraContext() : CameraContext {
- return context;
-}
-
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-export const takePhoto : TakePhoto = function (options : TakePhotoOption) {
- context.takePhoto(options)
-}
-
-export const setZoom : SetZoom = function (options : CameraContextSetZoomOption) {
- context.setZoom(options)
-}
-
-export const startRecord : StartRecord = function (options : CameraContextStartRecordOption) {
- context.startRecord(options)
-}
-
-export const stopRecord : StopRecord = function (options : CameraContextStopRecordOption) {
- context.stopRecord(options)
-}
-
-@UTSJS.keepAlive
-export function onCameraFrameListener(options : OnCameraFrameListenerOption) {
- context.onCameraFrameListener(options)
-}
-
-export const startCameraFrame : StartCameraFrame = function (options : CameraFrameListenerStartOption) {
- context.cameraFrameOnStart(options)
-}
-
-export const stopCameraFrame : StopCameraFrame = function (options : StopOption) {
- context.cameraFrameOnStop(options)
-}
-
-export const switchCamera : SwitchCamera = function (options : SwitchOption) {
- context.switchCamera(options)
-}
\ No newline at end of file
diff --git a/unpackage/dist/build/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.vue.ts b/unpackage/dist/build/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.vue.ts
deleted file mode 100644
index 2a804f7..0000000
--- a/unpackage/dist/build/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.vue.ts
+++ /dev/null
@@ -1,166 +0,0 @@
-//
-//
-//
-//
-
- import { UIView } from "UIKit"
- import { CameraView } from "./camera";
- import { CameraConfig } from '../interface'
- import { CameraManager } from "./CameraManager";
-
- //原生提供以下属性或方法的实现
- export default {
- data() {
- return {
- };
- },
- /**
- * 组件名称,也就是开发者使用的标签
- */
- name: "xf-camera",
- /**
- * 组件涉及的事件声明,只有声明过的事件,才能被正常发送
- */
- emits: ['stop', 'error', 'ready'],
- /**
- * 属性声明,组件的使用者会传递这些属性值到组件
- */
- props: {
- "mode": {
- type: String,
- default: "normal"
- },
- "resolution": {
- type: String,
- default: "medium" // low | high
- },
- "position": {
- type: String,
- default: "back" // front前置 |back 后置
- },
- "flash": {
- type: String,
- default: "auto" // auto, on, off, torch
- },
- "frameSize": {
- type: String,
- default: "medium" // small|large
- }
- },
- /**
- * 属性变化监听器实现
- */
- watch: {
- "position": {
- /**
- * 这里监听属性变化,并进行组件内部更新
- */
- handler(newValue : String, _oldValue : String) {
- CameraManager.getInstance().getCameraView()?.switchCamera(newValue)
- },
- /**
- * 创建时是否通过此方法更新属性,默认值为false
- */
- immediate: false
- },
- "flash": {
- /**
- * 这里监听属性变化,并进行组件内部更新
- */
- handler(newValue : String, _oldValue : String) {
- CameraManager.getInstance().getCameraView()?.setFlash(newValue)
- },
- /**
- * 创建时是否通过此方法更新属性,默认值为false
- */
- immediate: false
- }
- },
- /**
- * 规则:如果没有配置expose,则methods中的方法均对外暴露,如果配置了expose,则以expose的配置为准向外暴露
- * ['publicMethod'] 含义为:只有 `publicMethod` 在实例上可用
- */
- expose: [],
- methods: {
-
- },
-
-
- /**
- * 组件被创建,组件第一个生命周期,
- * 在内存中被占用的时候被调用,开发者可以在这里执行一些需要提前执行的初始化逻辑
- * [可选实现]
- */
- created() {
-
- },
- /**
- * 对应平台的view载体即将被创建,对应前端beforeMount
- * [可选实现]
- */
- NVBeforeLoad() {
-
- },
- /**
- * 创建原生View,必须定义返回值类型
- * 开发者需要重点实现这个函数,声明原生组件被创建出来的过程,以及最终生成的原生组件类型
- * [必须实现]
- */
- NVLoad() : UIView {
- let previewView = new UIView()
- previewView.tag = 9527
- return previewView
- },
-
- /**
- * 原生View已创建
- * [可选实现]
- */
- NVLoaded() {
-
- },
- /**
- * 原生View布局完成
- * [可选实现]
- */
- NVLayouted() {
- let previewView = this.$el as UIView;
- let cameraView = new CameraView(previewView, this, {
- resolution: this.resolution,
- frameSize: this.frameSize,
- devicePosition: this.position,
- flash: this.flash
- } as CameraConfig)
- CameraManager.getInstance().setCameraView(cameraView);
- },
- /**
- * 原生View将释放
- * [可选实现]
- */
- NVBeforeUnload() {
- let ret : Map = new Map();
- let detail : Map = new Map();
- detail.set("detail", ret)
- this.$emit("stop", detail);
-
- CameraManager.getInstance().getCameraView()?.unbindCamera()
- },
- /**
- * 原生View已释放,这里可以做释放View之后的操作
- * [可选实现]
- */
- NVUnloaded() {
- CameraManager.getInstance().dispose()
- },
- /**
- * 组件销毁
- * [可选实现]
- */
- unmounted() {
-
- }
- }
-/*
-
-
-*/
\ No newline at end of file
diff --git a/unpackage/dist/build/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/interface.uts.ts b/unpackage/dist/build/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/interface.uts.ts
deleted file mode 100644
index ae3b66f..0000000
--- a/unpackage/dist/build/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/interface.uts.ts
+++ /dev/null
@@ -1,214 +0,0 @@
-export type GeneralCallbackResult = {
- /** 错误信息 */
- errMsg : string
-}
-export type TakePhotoSuccessCallbackResult = {
- /** 照片文件的临时路径 (本地路径),安卓是jpg图片格式,ios是png */
- tempImagePath : string
- quality : string
- errMsg : string
-}
-/** 接口调用失败的回调函数 */
-export type TakePhotoFailCallback = (res : GeneralCallbackResult) => void
-/** 接口调用成功的回调函数 */
-export type TakePhotoSuccessCallback = (
- result : TakePhotoSuccessCallbackResult
-) => void
-
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type TakePhotoCompleteCallback = (res : GeneralCallbackResult) => void
-
-export type TakePhotoOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete ?: TakePhotoCompleteCallback
- /** 接口调用失败的回调函数 */
- fail ?: TakePhotoFailCallback
- /** 成像质量
- *
- * 可选值:
- * - 'high': 高质量;
- * - 'normal': 普通质量;
- * - 'low': 低质量;
- * - 'original': 原图; */
- quality ?: 'high' | 'normal' | 'low' | 'original'
- /**
- * 是否开启镜像 */
- selfieMirror ?: boolean
- /** 接口调用成功的回调函数 */
- success ?: TakePhotoSuccessCallback
-}
-
-
-export type SetZoomSuccessCallbackResult = {
- /** 实际设置的缩放级别。由于系统限制,某些机型可能无法设置成指定值,会改用最接近的可设值。 */
- zoom : number
- errMsg : string
-}
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type SetZoomCompleteCallback = (res : GeneralCallbackResult) => void
-/** 接口调用失败的回调函数 */
-export type SetZoomFailCallback = (res : GeneralCallbackResult) => void
-/** 接口调用成功的回调函数 */
-export type CameraContextSetZoomSuccessCallback = (
- result : SetZoomSuccessCallbackResult
-) => void
-
-export type CameraContextSetZoomOption = {
- /** 缩放级别,范围[1, maxZoom]。zoom 可取小数,精确到小数后一位。maxZoom 可在 bindinitdone 返回值中获取。 */
- zoom : number
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete ?: SetZoomCompleteCallback
- /** 接口调用失败的回调函数 */
- fail ?: SetZoomFailCallback
- /** 接口调用成功的回调函数 */
- success ?: CameraContextSetZoomSuccessCallback
-}
-
-export type StartRecordTimeoutCallbackResult = {
- /** 视频的文件的临时路径 (本地路径) */
- tempVideoPath : string
-}
-
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type StartRecordCompleteCallback = (res : GeneralCallbackResult) => void
-/** 接口调用失败的回调函数 */
-export type StartRecordFailCallback = (res : GeneralCallbackResult) => void
-/** 超过录制时长上限时会结束录像并触发此回调,录像异常退出时也会触发此回调 */
-export type StartRecordTimeoutCallback = (
- result : StartRecordTimeoutCallbackResult
-) => void
-/** 接口调用成功的回调函数 */
-export type CameraContextStartRecordSuccessCallback = (
- res : GeneralCallbackResult
-) => void
-export type CameraContextStartRecordOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete ?: StartRecordCompleteCallback
- /** 接口调用失败的回调函数 */
- fail ?: StartRecordFailCallback
- /**
- * 是否开启镜像 */
- selfieMirror ?: boolean
- /** 接口调用成功的回调函数 */
- success ?: CameraContextStartRecordSuccessCallback
- /**
- * 录制时长上限,单位为秒,最长不能超过 5 分钟 */
- timeout ?: number
- /** 超过录制时长上限时会结束录像并触发此回调,录像异常退出时也会触发此回调 */
- timeoutCallback ?: StartRecordTimeoutCallback
-}
-
-export type StopRecordSuccessCallbackResult = {
- /** 视频的文件的临时路径 (本地路径) */
- tempVideoPath : string
- errMsg : string
-}
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type StopRecordCompleteCallback = (res : GeneralCallbackResult) => void
-/** 接口调用失败的回调函数 */
-export type StopRecordFailCallback = (res : GeneralCallbackResult) => void
-/** 接口调用成功的回调函数 */
-export type CameraContextStopRecordSuccessCallback = (
- result : StopRecordSuccessCallbackResult
-) => void
-export type CameraContextStopRecordOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete ?: StopRecordCompleteCallback
- /** 启动视频压缩,压缩效果同`chooseVideo` */
- compressed ?: boolean
- /** 接口调用失败的回调函数 */
- fail ?: StopRecordFailCallback
- /** 接口调用成功的回调函数 */
- success ?: CameraContextStopRecordSuccessCallback
-}
-
-/** 回调函数 */
-export type OnCameraFrameCallback = (result : OnCameraFrameCallbackResult) => void
-export type OnCameraFrameCallbackResult = {
- /** 图像像素点数据,一维数组,每四项表示一个像素点的 rgba */
- data : any
- /** 图像数据矩形的高度 */
- height : number
- /** 图像数据矩形的宽度 */
- width : number
-}
-/** 接口调用成功的回调函数 */
-export type StartSuccessCallback = (res : GeneralCallbackResult) => void
-/** 接口调用失败的回调函数 */
-type StartFailCallback = (res : GeneralCallbackResult) => void
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-type StartCompleteCallback = (res : GeneralCallbackResult) => void
-export type CameraFrameListenerStartOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete ?: StartCompleteCallback
- /** 接口调用失败的回调函数 */
- fail ?: StartFailCallback
- /** 接口调用成功的回调函数 */
- success ?: StartSuccessCallback
- /** [Worker](https://developers.weixin.qq.com/miniprogram/dev/api/worker/Worker.html)
- *
- * 可选参数。如果需要在 iOS ExperimentalWorker 内监听摄像头帧数据,则需要传入对应 Worker 对象。详情 [Worker.getCameraFrameData](https://developers.weixin.qq.com/miniprogram/dev/api/worker/Worker.getCameraFrameData.html) */
- // worker ?: Worker
-}
-
-
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type StopCompleteCallback = (res : GeneralCallbackResult) => void
-/** 接口调用失败的回调函数 */
-export type StopFailCallback = (res : GeneralCallbackResult) => void
-/** 接口调用成功的回调函数 */
-export type StopSuccessCallback = (res : GeneralCallbackResult) => void
-export type StopOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete ?: StopCompleteCallback
- /** 接口调用失败的回调函数 */
- fail ?: StopFailCallback
- /** 接口调用成功的回调函数 */
- success ?: StopSuccessCallback
-}
-
-export type FlashMode = 'auto' | 'on' | 'off' | 'torch'
-export type DevicePosition = 'back' | 'front'
-export type Resolution = 'low' | 'medium' | 'high'
-export type FrameSize = 'medium' | 'small' | 'large'
-export type QualityType = 'high' | 'normal' | 'low' | 'original'
-
-
-export type CameraConfig = {
- flash ?: FlashMode
- devicePosition ?: DevicePosition
- resolution ?: Resolution
- frameSize ?: FrameSize
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type SwitchCompleteCallback = (res : GeneralCallbackResult) => void
-/** 接口调用失败的回调函数 */
-export type SwitchFailCallback = (res : GeneralCallbackResult) => void
-/** 接口调用成功的回调函数 */
-export type SwitchSuccessCallback = (res : GeneralCallbackResult) => void
-export type SwitchOption = {
- position : DevicePosition
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete ?: SwitchCompleteCallback
- /** 接口调用失败的回调函数 */
- fail ?: SwitchFailCallback
- /** 接口调用成功的回调函数 */
- success ?: SwitchSuccessCallback
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-export type OnCameraFrameListenerOption = {
- success ?: OnCameraFrameCallback
-}
-
-export type TakePhoto = (options : TakePhotoOption) => void
-export type SetZoom = (options : CameraContextSetZoomOption) => void
-export type StartRecord = (options : CameraContextStartRecordOption) => void
-export type StopRecord = (options : CameraContextStopRecordOption) => void
-export type OnCameraFrameListener = (options : OnCameraFrameListenerOption) => void
-export type StartCameraFrame = (options : CameraFrameListenerStartOption) => void
-export type StopCameraFrame = (options : StopOption) => void
-export type SwitchCamera = (options : SwitchOption) => void
\ No newline at end of file
diff --git a/unpackage/dist/build/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-android/CameraManager.uts.ts b/unpackage/dist/build/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-android/CameraManager.uts.ts
deleted file mode 100644
index fb0aafc..0000000
--- a/unpackage/dist/build/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-android/CameraManager.uts.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { CameraView } from "./camera";
-
-export class CameraManager {
- private cameraView : CameraView | null = null;
-
- private static instance : CameraManager | null = null;
-
- public static getInstance() : CameraManager {
- if (CameraManager.instance == null) {
- CameraManager.instance = new CameraManager();
- }
- return CameraManager.instance!;
- }
-
- public setCameraView(cameraView ?: CameraView) : void {
- this.cameraView = cameraView!
- }
-
- public getCameraView() : CameraView | null {
- return this.cameraView;
- }
-
- public dispose() : void {
- this.cameraView = null;
- }
-}
\ No newline at end of file
diff --git a/unpackage/dist/build/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-android/camera.uts.ts b/unpackage/dist/build/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-android/camera.uts.ts
deleted file mode 100644
index e223355..0000000
--- a/unpackage/dist/build/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-android/camera.uts.ts
+++ /dev/null
@@ -1,474 +0,0 @@
-import ProcessCameraProvider from 'androidx.camera.lifecycle.ProcessCameraProvider'
-import Preview from 'androidx.camera.core.Preview'
-import MirrorMode from 'androidx.camera.core.MirrorMode'
-import PreviewView from 'androidx.camera.view.PreviewView'
-import Context from 'android.content.Context'
-import FrameLayout from 'android.widget.FrameLayout'
-import ViewGroup from 'android.view.ViewGroup'
-import CameraSelector from 'androidx.camera.core.CameraSelector'
-import ImageAnalysis from 'androidx.camera.core.ImageAnalysis'
-import UseCaseGroup from 'androidx.camera.core.UseCaseGroup'
-import ContextCompat from 'androidx.core.content.ContextCompat'
-
-import LifecycleOwner from 'androidx.lifecycle.LifecycleOwner'
-import ImageCapture from 'androidx.camera.core.ImageCapture'
-import Size from 'android.util.Size'
-import ImageCaptureException from 'androidx.camera.core.ImageCaptureException'
-import File from 'java.io.File'
-
-import ImageProxy from 'androidx.camera.core.ImageProxy';
-import CameraControl from 'androidx.camera.core.CameraControl';
-
-import VideoCapture from 'androidx.camera.video.VideoCapture'
-import Recorder from 'androidx.camera.video.Recorder'
-import Recording from 'androidx.camera.video.Recording'
-import FileOutputOptions from 'androidx.camera.video.FileOutputOptions'
-import Quality from 'androidx.camera.video.Quality'
-import QualitySelector from 'androidx.camera.video.QualitySelector'
-import VideoRecordEvent from 'androidx.camera.video.VideoRecordEvent'
-
-// import Bitmap from 'android.graphics.Bitmap';
-// import FileOutputStream from 'java.io.FileOutputStream';
-// import MediaMetadataRetriever from 'android.media.MediaMetadataRetriever';
-
-import ExecutorService from 'java.util.concurrent.ExecutorService'
-import Executors from 'java.util.concurrent.Executors'
-import ImageFormat from 'android.graphics.ImageFormat';
-
-import {
- TakePhotoOption,
- GeneralCallbackResult,
- TakePhotoSuccessCallbackResult,
- CameraContextSetZoomOption,
- SetZoomSuccessCallbackResult,
- CameraContextStopRecordOption,
- CameraContextStartRecordOption,
- StartRecordTimeoutCallbackResult,
- StopRecordSuccessCallbackResult,
- OnCameraFrameCallback,
- OnCameraFrameCallbackResult,
- CameraFrameListenerStartOption,
- StopOption,
-
- CameraConfig,
- FlashMode,
- DevicePosition,
- Resolution,
- //FrameSize,
- QualityType,
- OnCameraFrameListenerOption
-} from '../interface'
-import Bitmap from "android.graphics.Bitmap";
-import FileOutputStream from "java.io.FileOutputStream";
-
-const FLASH_MODE_MAP = new Map([
- ['auto', ImageCapture.FLASH_MODE_AUTO],
- ['on', ImageCapture.FLASH_MODE_ON],
- ['torch', ImageCapture.FLASH_MODE_ON],
- ['off', ImageCapture.FLASH_MODE_OFF],
-])
-const DEVICE_POSITION_MAP = new Map([
- ['back', CameraSelector.LENS_FACING_BACK],
- ['front', CameraSelector.LENS_FACING_FRONT],
-])
-
-
-const RESOLUTION_MAP = new Map([
- ['low', Quality.LOWEST],
- ['medium', Quality.HD],
- ['high', Quality.HIGHEST],
-])
-
-const QUALITY_MAP = new Map([
- ["high", ImageCapture.CAPTURE_MODE_MAXIMIZE_QUALITY],
- ["low", ImageCapture.CAPTURE_MODE_MINIMIZE_LATENCY],
-])
-
-const MIRROR_MODE = new Map([
- [true, MirrorMode.MIRROR_MODE_ON],
- [false, MirrorMode.MIRROR_MODE_OFF],
-])
-
-export class CameraView extends FrameLayout {
- private previewView : PreviewView;
- public cameraProvider : ProcessCameraProvider | null = null;
- public cameraControl : CameraControl | null = null;
- private imageCapture : ImageCapture | null = null
- private videoCapture : VideoCapture | null = null
- private recording : Recording | null = null
- private comp : UTSComponent;
- private flashMode : FlashMode = 'auto'
- private devicePosition : DevicePosition = 'back'
- private resolution : Resolution = 'medium'
- // private frameSize : FrameSize = 'medium'
- private quality : QualityType = 'normal'
- private videoFile : File | null = null
- maxZoom : Float = (1).toFloat()
- minZoom : Float = (1).toFloat()
- private initialized : boolean = false
- private isListening : boolean = false
- private videoSelfieMirror : boolean | null = null
- private cameraContextStopRecordOption : CameraContextStopRecordOption | null = null
- private onCameraFrameCallback : OnCameraFrameCallback | null = null
- private cameraExecutor : ExecutorService | null = null
- private onCameraFrameListenerOption : OnCameraFrameListenerOption | null = null;
-
- constructor(context : Context, comp : UTSComponent, config : CameraConfig = {} as CameraConfig) {
- super(context);
- this.comp = comp
- this.flashMode = config.flash ?? 'auto'
- this.devicePosition = config.devicePosition ?? 'back'
- this.resolution = config.resolution ?? 'medium'
- // this.frameSize = config.frameSize ?? 'medium'
-
- this.previewView = new PreviewView(context);
- let layoutParam = new FrameLayout.LayoutParams(
- ViewGroup.LayoutParams.MATCH_PARENT,
- ViewGroup.LayoutParams.MATCH_PARENT);
- this.addView(this.previewView, layoutParam);
- this.setupCamera()
- }
- setupCamera() {
- // this.checkSelfPermission().then(() => {
- let cameraProviderFuture = ProcessCameraProvider.getInstance(UTSAndroid.getUniActivity()!)
- cameraProviderFuture.addListener(() => {
- try {
- this.cameraProvider = cameraProviderFuture.get()
- this.bindCamera();
- } catch (e) {
- let ret : Map = new Map();
- ret.set("errMsg", JSON.stringify(e))
- this.comp.$emit('error', ret)
- }
- }, ContextCompat.getMainExecutor(UTSAndroid.getUniActivity()!))
- // }).catch((err) => {
- // let ret : Map = new Map();
- // ret.set("errMsg", err ?? '权限不足')
- // this.comp.$emit('error', ret)
- // })
- }
- bindCamera() {
-
- let targetResolution = RESOLUTION_MAP.get(this.resolution) ?? Quality.HD;
- let captureMode = QUALITY_MAP.get(this.quality) ?? ImageCapture.CAPTURE_MODE_MAXIMIZE_QUALITY;
-
- // 创建一个Preview对象,用于显示相机预览
- let preview = new Preview.Builder()
- .build();
- preview.setSurfaceProvider(this.previewView.getSurfaceProvider());
-
- // 创建一个ImageCapture对象,用于拍照
- let imageCapture = new ImageCapture.Builder()
- .setFlashMode(FLASH_MODE_MAP.get(this.flashMode)!)
- .setCaptureMode(captureMode)
- .build();
- // 选择要使用的相机(后置或前置)
- let cameraSelector = new CameraSelector.Builder()
- .requireLensFacing(DEVICE_POSITION_MAP.get(this.devicePosition)!)
- .build();
-
- let recorder = Recorder.Builder()
- .setQualitySelector(QualitySelector.from(targetResolution))
- let mirrorMode = this.videoSelfieMirror == null ? MirrorMode.MIRROR_MODE_ON_FRONT_ONLY : MIRROR_MODE.get(this.videoSelfieMirror!);
- let videoCapture = new VideoCapture.Builder(recorder.build())
- .setMirrorMode(mirrorMode!)
- .build();
-
- this.videoCapture = videoCapture
-
- // 将参数应用到 VideoCapture
- this.imageCapture = imageCapture;
- this.cameraProvider!.unbindAll();
- let imageAnalysis = ImageAnalysis.Builder()
- // .setTargetResolution(new Size(1280, 720))
- .setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)
- .build()
-
- let viewPort = this.previewView.getViewPort()!
- let useCaseGroup = new UseCaseGroup.Builder()
- .addUseCase(preview)
- .addUseCase(imageAnalysis)
- .addUseCase(imageCapture)
- .addUseCase(videoCapture)
- .setViewPort(viewPort)
- .build();
-
- this.cameraExecutor = Executors.newSingleThreadExecutor()
- let _this = this
- class Analyzer implements ImageAnalysis.Analyzer {
- constructor() {
-
- }
- override analyze(image : ImageProxy) {
- if (_this.isListening) {
- let imageFormat = image.getFormat();
- // 获取图像的宽度和高度
- let width = image.width
- let height = image.height
-
- if (imageFormat == ImageFormat.YUV_420_888) {
- _this.onCameraFrameCallback?.({
- width,
- height,
- data: image
- } as OnCameraFrameCallbackResult)
-
- _this.onCameraFrameListenerOption?.success?.({
- width,
- height,
- data: image
- } as OnCameraFrameCallbackResult)
- }
- }
- image.close();
- }
- override getDefaultTargetResolution() : Size {
- // 返回默认的目标分辨率
- return Size(640, 480)
- }
- }
- imageAnalysis.setAnalyzer(this.cameraExecutor!, new Analyzer() as ImageAnalysis.Analyzer)
-
- let camera = this.cameraProvider!.bindToLifecycle(
- UTSAndroid.getUniActivity()! as LifecycleOwner,
- cameraSelector,
- useCaseGroup
- // preview,
- // imageCapture,
- // videoCapture
- );
- this.cameraControl = camera.getCameraControl();
- if (!this.initialized) {
- this.initialized = true
- let zoomState = camera.getCameraInfo().getZoomState().getValue();
- this.maxZoom = zoomState?.getMaxZoomRatio() ?? (1).toFloat();
- this.minZoom = zoomState?.getMinZoomRatio() ?? (1).toFloat();
- let maxZoom = this.maxZoom
-
- let ret : Map = new Map();
- ret.set("maxZoom", maxZoom)
- this.comp.$emit('ready', ret)
- }
-
- }
- unbindCamera() {
- this.cameraProvider?.unbindAll()
- this.cameraExecutor?.shutdown()
- }
- // checkSelfPermission() : Promise {
- // let permissionNeed = ["android.permission.CAMERA", "android.permission.RECORD_AUDIO", "android.permission.READ_EXTERNAL_STORAGE"]
- // return new Promise((resoleve, _) => {
- // resoleve(true);
- // UTSAndroid.requestSystemPermission(UTSAndroid.getUniActivity()!, permissionNeed, function (allRight : boolean, list : string[]) {
- // if (allRight) {
- // resoleve(true);
- // } else {
- // reject(list);
- // }
- // }, function (_ : boolean, grantedList : string[]) {
- // //grantedList
- // reject(grantedList);
- // })
- // })
- // }
- setConfig(config : CameraConfig = {} as CameraConfig) {
- this.flashMode = config.flash ?? 'auto'
- this.devicePosition = config.devicePosition ?? 'back'
- this.resolution = config.resolution ?? 'medium'
- // this.frameSize = config.frameSize ?? 'medium'
- }
- setFlash(mode : FlashMode) {
- this.flashMode = mode
- if (FLASH_MODE_MAP.get(mode) == null || this.imageCapture == null) return
- this.imageCapture!.setFlashMode(FLASH_MODE_MAP.get(mode)!)
- }
- switchCamera(position : DevicePosition) {
- this.devicePosition = position
- if (DEVICE_POSITION_MAP.get(position) == null || this.cameraProvider == null) return
- this.unbindCamera()
- this.bindCamera()
- }
- isResolutionSupported(context : Context, cameraSelector : CameraSelector, targetResolution : Size) : boolean {
- return true
- }
- takePhoto(option : TakePhotoOption) {
- let quality = option.quality ?? "high";
- this.quality = quality;
- if (quality == 'low') {
- this.unbindCamera()
- this.bindCamera()
- }
- // 设置输出目录
- let privateDir = UTSAndroid.getAppCachePath()!;
- const tempFile = new File(privateDir);
- if (!tempFile.exists()) {
- tempFile.mkdirs()
- }
- // 设置文件名
- const photoFile = new File(privateDir, Date.now() + '.png');
-
- // 处理镜像
- let metadata = new ImageCapture.Metadata();
- metadata.setReversedHorizontal(option.selfieMirror ?? DEVICE_POSITION_MAP.get(this.devicePosition)! == CameraSelector.LENS_FACING_FRONT);
-
- const outputOptions = ImageCapture.OutputFileOptions.Builder(photoFile).setMetadata(metadata).build()
- class OnImageSavedCallback implements ImageCapture.OnImageSavedCallback {
- override onImageSaved(outputFileResults : ImageCapture.OutputFileResults) {
- option.success?.({
- tempImagePath: photoFile.getAbsolutePath(),
- quality: quality,
- errMsg: 'ok'
- } as TakePhotoSuccessCallbackResult)
- option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- }
- override onError(err : ImageCaptureException) {
- const result : GeneralCallbackResult = {
- errMsg: err.toString()
- }
- option.fail?.(result)
- option.complete?.(result)
- }
- override onCaptureStarted() {
-
- }
- }
- this.imageCapture!.takePicture(outputOptions, ContextCompat.getMainExecutor(UTSAndroid.getUniActivity()!), new OnImageSavedCallback() as ImageCapture.OnImageSavedCallback)
-
- }
- setZoom(option : CameraContextSetZoomOption) {
- if (this.cameraControl != null) {
- try {
- this.cameraControl!.setZoomRatio(option.zoom.toFloat())
- option.success?.({
- zoom: option.zoom,
- errMsg: 'ok'
- } as SetZoomSuccessCallbackResult)
- option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- } catch (e) {
- const result : GeneralCallbackResult = {
- errMsg: e.toString()
- }
- option.complete?.(result)
- option.fail?.(result)
- }
- } else {
- const result : GeneralCallbackResult = {
- errMsg: '相机不存在'
- }
- option.complete?.(result)
- option.fail?.(result)
- }
- }
- startRecord(option : CameraContextStartRecordOption) {
- if (option.selfieMirror != null && this.videoSelfieMirror != option.selfieMirror) {
- this.videoSelfieMirror = option.selfieMirror
- this.unbindCamera()
- this.bindCamera()
- }
- if (this.recording != null || this.videoCapture == null) {
- option.fail?.({
- errMsg: '已经在录制或相机不存在'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '已经在录制或相机不存在'
- } as GeneralCallbackResult)
- return
- }
- // 设置输出目录
- let privateDir = UTSAndroid.getAppCachePath()!;
- // 设置文件名
- this.videoFile = new File(privateDir, Date.now() + 'video.mp4');
- let outputFileOptions = new FileOutputOptions.Builder(this.videoFile!).build();
-
-
- this.recording = this.videoCapture!.output
- .prepareRecording(UTSAndroid.getUniActivity()!, outputFileOptions)
- .withAudioEnabled()
- // .apply(()=>{
- // })
- .start(ContextCompat.getMainExecutor(UTSAndroid.getUniActivity()!), (recordEvent : VideoRecordEvent) => {
- if (recordEvent instanceof VideoRecordEvent.Start) {
- option.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
-
- if (option.timeout != null && option.timeout! > 0) {
- setTimeout(() => {
- this.recording?.stop()
- }, option.timeout!)
- }
- } else if (recordEvent instanceof VideoRecordEvent.Finalize) {
- this.recording?.close()
- this.recording = null
- let tempVideoPath = this.videoFile?.getAbsolutePath()!
- //let tempThumbPath = extractThumbnail(tempVideoPath) ?? ''
- this.cameraContextStopRecordOption?.success?.({
- tempVideoPath,
- errMsg: 'ok'
- } as StopRecordSuccessCallbackResult)
-
- option.timeoutCallback?.({
- tempVideoPath,
- } as StartRecordTimeoutCallbackResult)
- }
- })
- }
- stopRecord(option : CameraContextStopRecordOption) {
- if (this.recording == null) {
- option.fail?.({
- errMsg: '未开始录制'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未开始录制'
- } as GeneralCallbackResult)
- return
- }
- this.cameraContextStopRecordOption = option
- this.recording?.stop()
- }
- onCameraFrame(callback : OnCameraFrameCallback | null = null) {
- this.onCameraFrameCallback = callback
- }
-
- onCameraFrameListener(option : OnCameraFrameListenerOption) {
- this.onCameraFrameListenerOption = option
- }
-
- cameraFrameOnStart(option ?: CameraFrameListenerStartOption) {
- this.isListening = true
- option?.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- }
- cameraFrameOnStop(option ?: StopOption) {
- this.isListening = false
- option?.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- }
-
-}
-
-
-// // 从视频文件中提取封面的函数
-// function extractThumbnail(videoUri : string) : string | null {
-// let retriever = new MediaMetadataRetriever()
-// retriever.setDataSource(videoUri)
-// // 提取视频的某一帧作为封面
-// let thumbnail = retriever.frameAtTime
-// // 保存封面到文件
-// if (thumbnail != null) {
-// let privateDir = UTSAndroid.getAppCachePath();
-// const thumbnailFile = new File(privateDir, Date.now() + '_thumbnail.jpg');
-// let outputStream = FileOutputStream(thumbnailFile)
-// thumbnail.compress(Bitmap.CompressFormat.JPEG, 90, outputStream)
-// outputStream.close()
-// return thumbnailFile.getAbsolutePath()
-// }
-// retriever.release()
-// return null
-// }
\ No newline at end of file
diff --git a/unpackage/dist/build/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-android/index.uts.ts b/unpackage/dist/build/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-android/index.uts.ts
deleted file mode 100644
index 4165925..0000000
--- a/unpackage/dist/build/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-android/index.uts.ts
+++ /dev/null
@@ -1,252 +0,0 @@
-import { CameraView } from './camera'
-import {
- TakePhotoOption,
- GeneralCallbackResult,
- CameraContextSetZoomOption,
- CameraContextStartRecordOption,
- CameraContextStopRecordOption,
- // CameraFrameListener,
- OnCameraFrameCallback,
- // OnCameraFrameCallbackResult,
- CameraFrameListenerStartOption,
- StopOption,
- TakePhoto,
- SetZoom,
- StartRecord,
- StopRecord,
- StartCameraFrame,
- StopCameraFrame,
- OnCameraFrameListenerOption,
- SwitchOption,
- SwitchCamera
-} from '../interface'
-import { CameraManager } from "./CameraManager";
-
-
-class CameraFrameListener {
- context : CameraContext
- constructor(context : CameraContext) {
- this.context = context
- }
- start() : void
- start(option ?: CameraFrameListenerStartOption) {
- this.context.getCamera().then((camera : CameraView) => {
- camera.cameraFrameOnStart(option)
- })
- }
- stop() : void
- stop(option ?: StopOption) {
- this.context.getCamera().then((camera : CameraView) => {
- camera.cameraFrameOnStop(option)
- })
- }
-}
-
-class CameraContext {
- private mCameraFrameListener : CameraFrameListener | null = null
- constructor() {
- }
- getCamera() : Promise {
- let cameraPreview = CameraManager.getInstance().getCameraView()
- if (cameraPreview != null) {
- return Promise.resolve(cameraPreview);
- }
- let resolveFunc : ((res : CameraView) => void) | null = null
- let rejectFunc : ((res : string) => void) | null = null
-
- let maxAttempts : number = 5
- let currentAttempt : number = 0
-
- function attemptGetCamera() {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera !== null) {
- resolveFunc?.(camera)
- } else if (currentAttempt < maxAttempts) {
- currentAttempt++
- setTimeout(() => {
- attemptGetCamera()
- }, 100)
- } else {
- rejectFunc?.('Camera not found after multiple attempts')
- }
- }
- return new Promise((resolve, reject) => {
- resolveFunc = resolve
- rejectFunc = reject
- attemptGetCamera()
- })
- }
-
-
- takePhoto(option : TakePhotoOption) {
- this.getCamera().then((camera : CameraView) => {
- camera.takePhoto(option)
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- })
-
- }
- setZoom(option : CameraContextSetZoomOption) {
- this.getCamera().then((camera : CameraView) => {
- camera.setZoom(option)
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- })
- }
- startRecord(option : CameraContextStartRecordOption) {
- this.getCamera().then((camera : CameraView) => {
- camera.startRecord(option)
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- })
- }
- stopRecord(option : CameraContextStopRecordOption) {
- this.getCamera().then((camera : CameraView) => {
- camera.stopRecord(option)
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- })
- }
- onCameraFrame() : CameraFrameListener
- onCameraFrame(callback : OnCameraFrameCallback | null = null) : CameraFrameListener {
- if (this.mCameraFrameListener == null) {
- this.mCameraFrameListener = new CameraFrameListener(this)
- }
- this.getCamera().then((camera : CameraView) => {
- camera.onCameraFrame(callback)
- })
- return this.mCameraFrameListener!
- }
- //////////////////////////////////////////////////////
- onCameraFrameListener(option : OnCameraFrameListenerOption) {
- this.getCamera().then((camera : CameraView) => {
- camera.onCameraFrameListener(option)
- }).catch(() => {
- console.log("未找到相机")
- })
- }
-
- cameraFrameOnStart(option : CameraFrameListenerStartOption) {
- this.getCamera().then((camera : CameraView) => {
- camera.cameraFrameOnStart(option)
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- })
- }
-
- cameraFrameOnStop(option : StopOption) {
- this.getCamera().then((camera : CameraView) => {
- camera.cameraFrameOnStop(option)
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- })
- }
-
- switchCamera(option : SwitchOption) {
- this.getCamera().then((camera : CameraView) => {
- camera.switchCamera(option.position)
-
- option.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- })
- }
-}
-
-let context : CameraContext = new CameraContext();
-
-export function createCameraContext() : CameraContext {
- return context;
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-
-export const takePhoto : TakePhoto = function (options : TakePhotoOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.takePhoto(options)
- }, null)
-}
-
-export const setZoom : SetZoom = function (options : CameraContextSetZoomOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.setZoom(options)
- }, null)
-}
-
-export const startRecord : StartRecord = function (options : CameraContextStartRecordOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.startRecord(options)
- }, null)
-}
-
-export const stopRecord : StopRecord = function (options : CameraContextStopRecordOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.stopRecord(options)
- }, null)
-}
-
-@UTSJS.keepAlive
-export function onCameraFrameListener(options : OnCameraFrameListenerOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.onCameraFrameListener(options)
- }, null)
-}
-
-export const startCameraFrame : StartCameraFrame = function (options : CameraFrameListenerStartOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.cameraFrameOnStart(options)
- }, null)
-}
-
-export const stopCameraFrame : StopCameraFrame = function (options : StopOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.cameraFrameOnStop(options)
- }, null)
-}
-
-
-export const switchCamera : SwitchCamera = function (options : SwitchOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.switchCamera(options)
- }, null)
-}
\ No newline at end of file
diff --git a/unpackage/dist/build/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-android/index.vue.ts b/unpackage/dist/build/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-android/index.vue.ts
deleted file mode 100644
index 4f8e72c..0000000
--- a/unpackage/dist/build/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-android/index.vue.ts
+++ /dev/null
@@ -1,151 +0,0 @@
-//
-//
-//
-//
-//
-
- import { CameraView } from './camera';
- import { CameraConfig } from '../interface'
- import { CameraManager } from './CameraManager';
-
- //原生提供以下属性或方法的实现
- export default {
- /**
- * 组件名称,也就是开发者使用的标签
- */
- name: "xf-camera",
- /**
- * 组件涉及的事件声明,只有声明过的事件,才能被正常发送
- */
- emits: ['stop', 'error', 'ready'],
- /**
- * 属性声明,组件的使用者会传递这些属性值到组件
- */
- props: {
- "mode": {
- type: String,
- default: "normal"
- },
- "resolution": {
- type: String,
- default: "medium" // low | high
- },
- "position": {
- type: String,
- default: "back" // front前置 |back 后置
- },
- "flash": {
- type: String,
- default: "auto" // auto, on, off, torch
- },
- "frameSize": {
- type: String,
- default: "medium" // small|large
- }
- },
- /**
- * 组件内部变量声明
- */
- data() {
- return {}
- },
- /**
- * 属性变化监听器实现
- */
- watch: {
- "position": {
- /**
- * 这里监听属性变化,并进行组件内部更新
- */
- handler(newValue : string, _ : string) {
- this.$el?.switchCamera(newValue)
- },
- immediate: false // 创建时是否通过此方法更新属性,默认值为false
- },
- "flash": {
- /**
- * 这里监听属性变化,并进行组件内部更新
- */
- handler(newValue : string, _ : string) {
- this.$el?.setFlash(newValue)
- },
- immediate: false // 创建时是否通过此方法更新属性,默认值为false
-
- }
- },
- /**
- * 规则:如果没有配置expose,则methods中的方法均对外暴露,如果配置了expose,则以expose的配置为准向外暴露
- * ['publicMethod'] 含义为:只有 `publicMethod` 在实例上可用
- */
- expose: [],
- methods: {
-
- },
- /**
- * [可选实现] 组件被创建,组件第一个生命周期,
- * 在内存中被占用的时候被调用,开发者可以在这里执行一些需要提前执行的初始化逻辑
- */
- created() {
-
- },
- /**
- * [可选实现] 对应平台的view载体即将被创建,对应前端beforeMount
- */
- NVBeforeLoad() {
-
- },
- /**
- * [必须实现] 创建原生View,必须定义返回值类型
- * 开发者需要重点实现这个函数,声明原生组件被创建出来的过程,以及最终生成的原生组件类型
- * (Android需要明确知道View类型,需特殊校验)
- */
- NVLoad() : CameraView {
- let previewView = new CameraView(this.$androidContext!, this)
- previewView.setTag("9527");
- CameraManager.getInstance().setCameraView(previewView);
- return previewView
-
- },
- /**
- * [可选实现] 原生View已创建
- */
- NVLoaded() {
-
- },
- /**
- * [可选实现] 原生View布局完成
- */
- NVLayouted() {
- this.$el?.setConfig({
- resolution: this.resolution,
- frameSize: this.frameSize,
- flash: this.flash
- } as CameraConfig)
- this.$el?.switchCamera(this.position)
- },
- /**
- * [可选实现] 原生View将释放
- */
- NVBeforeUnload() {
- let ret : Map = new Map();
- this.$emit('stop', ret)
-
- this.$el?.unbindCamera()
- },
- /**
- * [可选实现] 原生View已释放,这里可以做释放View之后的操作
- */
- NVUnloaded() {
- CameraManager.getInstance().dispose();
- },
- /**
- * [可选实现] 组件销毁
- */
- unmounted() {
-
- },
- }
-/*
-
-
-*/
\ No newline at end of file
diff --git a/unpackage/dist/build/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/CameraManager.uts.ts b/unpackage/dist/build/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/CameraManager.uts.ts
deleted file mode 100644
index fb0aafc..0000000
--- a/unpackage/dist/build/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/CameraManager.uts.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { CameraView } from "./camera";
-
-export class CameraManager {
- private cameraView : CameraView | null = null;
-
- private static instance : CameraManager | null = null;
-
- public static getInstance() : CameraManager {
- if (CameraManager.instance == null) {
- CameraManager.instance = new CameraManager();
- }
- return CameraManager.instance!;
- }
-
- public setCameraView(cameraView ?: CameraView) : void {
- this.cameraView = cameraView!
- }
-
- public getCameraView() : CameraView | null {
- return this.cameraView;
- }
-
- public dispose() : void {
- this.cameraView = null;
- }
-}
\ No newline at end of file
diff --git a/unpackage/dist/build/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/camera.uts.ts b/unpackage/dist/build/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/camera.uts.ts
deleted file mode 100644
index 2a33868..0000000
--- a/unpackage/dist/build/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/camera.uts.ts
+++ /dev/null
@@ -1,469 +0,0 @@
-import { UIImage, UIView } from 'UIKit';
-import { AVCaptureDevice, AVCaptureDeviceInput, AVCaptureSession, AVCaptureVideoPreviewLayer, AVMediaType, AVLayerVideoGravity, AVCaptureVideoDataOutput, AVCaptureVideoDataOutputSampleBufferDelegate, AVCaptureOutput, AVCaptureConnection, AVCapturePhotoOutput, AVCapturePhotoSettings, AVCapturePhotoCaptureDelegate, AVCaptureMovieFileOutput, AVCaptureFileOutputRecordingDelegate, AVCaptureFileOutput } from "AVFoundation";
-import { CMSampleBuffer, CMSampleBufferGetImageBuffer } from 'CoreMedia';
-import { DispatchQueue } from 'Dispatch';
-import { CVPixelBufferGetWidth, CVPixelBufferGetHeight } from "CoreVideo";
-import { NSError, URL } from "Foundation";
-
-import {
- TakePhotoOption,
- GeneralCallbackResult,
- TakePhotoSuccessCallbackResult,
- CameraContextSetZoomOption,
- SetZoomSuccessCallbackResult,
- CameraContextStopRecordOption,
- CameraContextStartRecordOption,
- StartRecordTimeoutCallbackResult,
- StopRecordSuccessCallbackResult,
- OnCameraFrameCallback,
- OnCameraFrameCallbackResult,
- OnCameraFrameListenerOption,
- CameraFrameListenerStartOption,
- StopOption,
-
- CameraConfig,
- FlashMode,
- DevicePosition,
- Resolution
-} from '../interface'
-import { AVCapturePhoto } from 'AVFoundation';
-
-
-
-const RESOLUTION_MAP = new Map([
- ['low', AVCaptureSession.Preset.low],
- ['medium', AVCaptureSession.Preset.medium],
- ['high', AVCaptureSession.Preset.high],
-])
-
-const FLASH_MODE_MAP = new Map([
- ['auto', AVCaptureDevice.TorchMode.auto],
- ['on', AVCaptureDevice.TorchMode.on],
- ['torch', AVCaptureDevice.TorchMode.on],
- ['off', AVCaptureDevice.TorchMode.off],
-])
-
-
-let fileOutputRecordingDelegate : MyAVCaptureFileOutputRecordingDelegate | null = null;
-let capturePhotoCaptureDelegate : MyAVCapturePhotoCaptureDelegate | null = null;
-let onCameraFrameListenerOption : OnCameraFrameListenerOption | null = null;
-let cameraContextStopRecordOption : CameraContextStopRecordOption | null = null;
-
-class MyAVCaptureFileOutputRecordingDelegate implements AVCaptureFileOutputRecordingDelegate {
- private option : CameraContextStartRecordOption;
-
- constructor(option : CameraContextStartRecordOption) {
- this.option = option;
- }
-
- fileOutput(output : AVCaptureFileOutput, @argumentLabel("didStartRecordingTo") fileURL : URL, @argumentLabel("from") connections : [AVCaptureConnection]) : void {
- this.option.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- }
-
- fileOutput(output : AVCaptureFileOutput, @argumentLabel("didFinishRecordingTo") outputFileURL : URL, @argumentLabel("from") connections : [AVCaptureConnection], @argumentLabel("error") error ?: NSError) : void {
- if (error == null) {
- cameraContextStopRecordOption?.success?.({
- tempVideoPath: outputFileURL.path + "",
- errMsg: 'ok'
- } as StopRecordSuccessCallbackResult)
-
- this.option.timeoutCallback?.({
- tempVideoPath: outputFileURL.path + ""
- } as StartRecordTimeoutCallbackResult)
- } else {
- cameraContextStopRecordOption?.fail?.({
- errMsg: '录制失败'
- } as GeneralCallbackResult)
- cameraContextStopRecordOption?.complete?.({
- errMsg: '录制失败'
- } as GeneralCallbackResult)
- }
-
- }
-
-}
-
-class MyAVCapturePhotoCaptureDelegate implements AVCapturePhotoCaptureDelegate {
- private option : TakePhotoOption;
-
- constructor(option : TakePhotoOption) {
- this.option = option;
- }
-
- captureOutput(output : AVCapturePhotoOutput, @argumentLabel("didFinishProcessingPhoto") photo : AVCapturePhoto, @argumentLabel("error") error : Error) : void {
- let imageData = photo.fileDataRepresentation()
- if (imageData == null) {
- const result : GeneralCallbackResult = {
- errMsg: "拍照失败"
- }
- this.option.fail?.(result)
- this.option.complete?.(result)
- return;
- }
- let path = UTSiOS.getDataPath() + (new Date().getTime()).toString() + ".jpg";
- let url = new URL(fileURLWithPath = path);
-
- let quality = this.option.quality ?? "original"
- if (quality == 'original') {
- try {
- UTSiOS.try(imageData!.write(to = url, options = NSData.WritingOptions.atomic))
-
- this.option.success?.({
- tempImagePath: path,
- quality: quality,
- errMsg: 'ok'
- } as TakePhotoSuccessCallbackResult)
- this.option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- } catch (e) {
- const result : GeneralCallbackResult = {
- errMsg: JSON.stringify(e)
- }
- this.option.fail?.(result)
- this.option.complete?.(result)
- }
- } else {
- let image = UIImage(data = imageData!)
- if (image != null) {
- let _quality : number = 0.5;
- if (quality == 'high') {
- _quality = 1.0;
- } else if (quality == 'normal') {
- _quality = 0.8;
- } else if (quality == 'low') {
- _quality = 0.5;
- }
- let data = image!.jpegData(compressionQuality = _quality.toDouble())!
-
- try {
- UTSiOS.try(data.write(to = url, options = NSData.WritingOptions.atomic))
-
- this.option.success?.({
- tempImagePath: path,
- quality: quality,
- errMsg: 'ok'
- } as TakePhotoSuccessCallbackResult)
- this.option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- } catch (e) {
- const result : GeneralCallbackResult = {
- errMsg: JSON.stringify(e)
- }
- this.option.fail?.(result)
- this.option.complete?.(result)
- }
- } else {
- const result : GeneralCallbackResult = {
- errMsg: "拍照失败"
- }
- this.option.fail?.(result)
- this.option.complete?.(result)
- }
- }
- }
-
-}
-
-export class CameraView implements AVCaptureVideoDataOutputSampleBufferDelegate {
-
- private captureSession ?: AVCaptureSession;
- private videoDeviceInput ?: AVCaptureDeviceInput;
- private photoDeviceOutput ?: AVCapturePhotoOutput;
- private movieDeviceOutput ?: AVCaptureMovieFileOutput;
- private previewLayer ?: AVCaptureVideoPreviewLayer;
- private previewView ?: UIView;
- private comp ?: UTSComponent;
- private flashMode : FlashMode = 'auto'
- private devicePosition : DevicePosition = 'back'
- private resolution : Resolution = 'medium'
- private isListening : boolean = false
- private onCameraFrameCallback : OnCameraFrameCallback | null = null;
-
- constructor(previewView : UIView, comp : UTSComponent, config : CameraConfig = {} as CameraConfig) {
- super.init();
- this.previewView = previewView
- this.comp = comp
- this.flashMode = config.flash ?? 'auto'
- this.devicePosition = config.devicePosition ?? 'back'
- this.resolution = config.resolution ?? 'medium'
- this.setupCamera();
- }
-
- setupCamera() {
- this.captureSession = new AVCaptureSession();
- let targetResolution = RESOLUTION_MAP.get(this.resolution) ?? AVCaptureSession.Preset.high;
- this.captureSession!.sessionPreset = targetResolution;
- let device = this.getCameraDevice();
- try {
- //相机
- let deviceInput = UTSiOS.try(new AVCaptureDeviceInput(device = device))
- if (this.captureSession!.canAddInput(deviceInput)) {
- this.captureSession!.addInput(deviceInput);
- }
- //实时流输出
- let output = new AVCaptureVideoDataOutput();
- output.setSampleBufferDelegate(this, queue = DispatchQueue.main);
- if (this.captureSession!.canAddOutput(output)) {
- this.captureSession!.addOutput(output);
- }
-
- let photoOutput = new AVCapturePhotoOutput();
- // let photoSettings = new AVCapturePhotoSettings(format = [AVVideoCodecKey = AVVideoCodecType.jpeg]);
- // photoOutput.setPreparedPhotoSettingsArray([photoSettings], completionHandler = null);
- if (this.captureSession!.canAddOutput(photoOutput)) {
- this.captureSession!.addOutput(photoOutput);
- }
-
- let movieOutput = new AVCaptureMovieFileOutput();
- if (this.captureSession!.canAddOutput(movieOutput)) {
- this.captureSession!.addOutput(movieOutput);
- }
-
- this.videoDeviceInput = deviceInput;
- this.photoDeviceOutput = photoOutput;
- this.movieDeviceOutput = movieOutput;
- this.previewLayer = new AVCaptureVideoPreviewLayer(session = this.captureSession!)
- this.previewLayer!.videoGravity = AVLayerVideoGravity.resizeAspectFill;
- this.previewLayer!.frame = this.previewView!.layer.bounds;
- this.previewView!.layer.addSublayer(this.previewLayer!)
- this.captureSession!.startRunning();
-
- let ret : Map = new Map();
- ret.set("maxZoom", device.maxAvailableVideoZoomFactor)
- let detail : Map = new Map();
- detail.set("detail", ret)
- this.comp?.$emit("ready", detail);
- } catch (e) {
- let ret : Map = new Map();
- ret.set("errMsg", JSON.stringify(e))
- let detail : Map = new Map();
- detail.set("detail", ret)
- this.comp?.$emit("error", detail);
- }
- }
-
- getCameraDevice() : AVCaptureDevice {
- let cameras = AVCaptureDevice.devices(for = AVMediaType.video)
- let frontCamera : AVCaptureDevice | null = null;
- let backCamera : AVCaptureDevice | null = null;
-
- let index = 0;
- while (index < cameras.length) {
- if (index == cameras.length) {
- break;
- }
- let camera = cameras[index.toInt()] as AVCaptureDevice;
- if (camera.position == AVCaptureDevice.Position.back) {
- backCamera = camera;
- } else {
- frontCamera = camera;
- }
- index++;
- }
-
- if (this.devicePosition == 'back') {
- return backCamera!;
- } else {
- return frontCamera!;
- }
- }
-
- captureOutput(output : AVCaptureOutput, @argumentLabel("didOutput") sampleBuffer : CMSampleBuffer, @argumentLabel("from") connection : AVCaptureConnection) : void {
-
- if (this.isListening) {
- let imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer)
- let width = CVPixelBufferGetWidth(imageBuffer!)
- let height = CVPixelBufferGetHeight(imageBuffer!);
-
- const res : OnCameraFrameCallbackResult = {
- width: width as Int,
- height: height as Int,
- data: imageBuffer!
- };
- this.onCameraFrameCallback?.(res)
- onCameraFrameListenerOption?.success?.({
- width: width as Int,
- height: height as Int,
- data: imageBuffer!
- } as OnCameraFrameCallbackResult)
-
- // this.onCameraFrameListenerOption?.success({
- // width: width as Int,
- // height: height as Int,
- // data: imageBuffer!
- // } as OnCameraFrameCallbackResult)
-
-
- // if (imageBuffer != null) {
- // let ciImage = new CIImage(cvPixelBuffer = imageBuffer!)
- // let temporaryContext = new CIContext(options = null)
- // let width = CVPixelBufferGetWidth(imageBuffer!)
- // let height = CVPixelBufferGetHeight(imageBuffer!);
- // let videoImage = temporaryContext.createCGImage(ciImage, from = new CGRect(x = 0, y = 0, width = width, height = height))
- // let image = new UIImage(cgImage = videoImage!)
-
- // this.onCameraFrameCallback?.({
- // width: width as Int,
- // height: height as Int,
- // data: image
- // } as OnCameraFrameCallbackResult)
- // }
- }
- }
-
- bindCamera() {
- this.captureSession!.startRunning();
- }
-
-
- unbindCamera() {
- this.captureSession!.stopRunning();
- }
-
-
- setConfig(config : CameraConfig = {} as CameraConfig) {
- this.flashMode = config.flash ?? 'auto'
- this.devicePosition = config.devicePosition ?? 'back'
- this.resolution = config.resolution ?? 'medium'
- }
-
- setFlash(mode : FlashMode) {
- this.flashMode = mode
- let targetFlash = FLASH_MODE_MAP.get(this.flashMode) ?? AVCaptureDevice.TorchMode.auto;
- try {
- let device = this.getCameraDevice();
- if (device.hasTorch && device.isTorchAvailable) {
- UTSiOS.try(device.lockForConfiguration());
- device.torchMode = targetFlash;
- device.unlockForConfiguration()
- }
- } catch (e) {
- console.log(e)
- }
- }
-
-
- switchCamera(position : DevicePosition) {
- if (!this.captureSession!.isRunning) {
- return;
- }
- this.devicePosition = position;
- try {
- this.captureSession!.beginConfiguration();
- this.captureSession!.removeInput(this.videoDeviceInput!);
- let device = this.getCameraDevice();
-
- let deviceInput = UTSiOS.try(new AVCaptureDeviceInput(device = device))
- this.captureSession!.addInput(deviceInput);
- this.videoDeviceInput = deviceInput;
- this.captureSession!.commitConfiguration();
- } catch (e) {
- console.log(e)
- }
- }
-
- takePhoto(option : TakePhotoOption) {
- capturePhotoCaptureDelegate = new MyAVCapturePhotoCaptureDelegate(option);
- let settings = new AVCapturePhotoSettings()
- this.photoDeviceOutput?.capturePhoto(with = settings, delegate = capturePhotoCaptureDelegate!);
- }
-
-
- setZoom(option : CameraContextSetZoomOption) {
- try {
- let device = this.getCameraDevice();
- // if (device.isRampingVideoZoom) {
- UTSiOS.try(device.lockForConfiguration());
- device.videoZoomFactor = option.zoom.toDouble();
- device.unlockForConfiguration()
-
- option.success?.({
- zoom: option.zoom,
- errMsg: 'ok'
- } as SetZoomSuccessCallbackResult)
- option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- // } else {
- // const result : GeneralCallbackResult = {
- // errMsg: '相机不支持缩放'
- // }
- // option.complete?.(result)
- // option.fail?.(result)
- // }
- } catch (e) {
- const result : GeneralCallbackResult = {
- errMsg: JSON.stringify(e)
- }
- option.complete?.(result)
- option.fail?.(result)
- }
- }
-
- startRecord(option : CameraContextStartRecordOption) {
- let isRecording = this.movieDeviceOutput?.isRecording ?? false;
- if (isRecording) {
- option.fail?.({
- errMsg: '已经在录制或相机不存在'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '已经在录制或相机不存在'
- } as GeneralCallbackResult)
- return
- }
-
- fileOutputRecordingDelegate = new MyAVCaptureFileOutputRecordingDelegate(option);
- let path = UTSiOS.getDataPath() + (new Date().getTime()).toString() + ".mp4";
- let url = new URL(fileURLWithPath = path);
- this.movieDeviceOutput?.startRecording(to = url, recordingDelegate = fileOutputRecordingDelegate!);
-
- if (option.timeout != null && option.timeout! > 0) {
- setTimeout(() => {
- this.movieDeviceOutput?.stopRecording();
- }, (option.timeout!).toInt())
- }
- }
-
-
- stopRecord(option : CameraContextStopRecordOption) {
- let isRecording = this.movieDeviceOutput?.isRecording ?? false;
- if (!isRecording) {
- option.fail?.({
- errMsg: '未开始录制'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未开始录制'
- } as GeneralCallbackResult)
- return
- }
- cameraContextStopRecordOption = option;
- this.movieDeviceOutput?.stopRecording();
- }
-
-
- onCameraFrame(callback : OnCameraFrameCallback | null = null) {
- this.onCameraFrameCallback = callback
- }
-
- onCameraFrameListener(option : OnCameraFrameListenerOption) {
- onCameraFrameListenerOption = option
- }
-
- cameraFrameOnStart(option ?: CameraFrameListenerStartOption) {
- this.isListening = true
- option?.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- }
-
- cameraFrameOnStop(option ?: StopOption) {
- this.isListening = false
- option?.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- }
-}
\ No newline at end of file
diff --git a/unpackage/dist/build/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.uts.ts b/unpackage/dist/build/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.uts.ts
deleted file mode 100644
index b254595..0000000
--- a/unpackage/dist/build/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.uts.ts
+++ /dev/null
@@ -1,207 +0,0 @@
-import {
- TakePhotoOption,
- GeneralCallbackResult,
- CameraContextSetZoomOption,
- CameraContextStartRecordOption,
- CameraContextStopRecordOption,
- OnCameraFrameCallback,
- CameraFrameListenerStartOption,
- StopOption,
- TakePhoto,
- SetZoom,
- StartRecord,
- StopRecord,
- StartCameraFrame,
- StopCameraFrame,
- OnCameraFrameListenerOption,
- SwitchCamera,
- SwitchOption
-} from '../interface'
-import { CameraManager } from './CameraManager';
-
-class CameraFrameListener {
- context : CameraContext
- constructor(context : CameraContext) {
- this.context = context
- }
- start() : void
- start(option ?: CameraFrameListenerStartOption) {
- CameraManager.getInstance().getCameraView()?.cameraFrameOnStart(option)
- }
- stop() : void
- stop(option ?: StopOption) {
- CameraManager.getInstance().getCameraView()?.cameraFrameOnStop(option)
- }
-}
-
-class CameraContext {
- private mCameraFrameListener : CameraFrameListener | null = null
-
- constructor() {
-
- }
-
- takePhoto(option : TakePhotoOption) {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- return;
- }
- camera?.takePhoto(option)
- }
-
- setZoom(option : CameraContextSetZoomOption) {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- return;
- }
-
- camera?.setZoom(option)
- }
-
- startRecord(option : CameraContextStartRecordOption) {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- return;
- }
- camera?.startRecord(option)
- }
-
- stopRecord(option : CameraContextStopRecordOption) {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- return;
- }
- camera?.stopRecord(option)
- }
-
- onCameraFrame() : CameraFrameListener
- onCameraFrame(callback : OnCameraFrameCallback | null = null) : CameraFrameListener {
- if (this.mCameraFrameListener == null) {
- this.mCameraFrameListener = new CameraFrameListener(this)
- }
- CameraManager.getInstance().getCameraView()?.onCameraFrame(callback)
- return this.mCameraFrameListener!
- }
- //////////////////////////////////////////////////////
- onCameraFrameListener(option : OnCameraFrameListenerOption) {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera == null) {
- return;
- }
- camera?.onCameraFrameListener(option)
- }
-
- cameraFrameOnStart(option : CameraFrameListenerStartOption) {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- return;
- }
- camera?.cameraFrameOnStart(option)
- }
-
- cameraFrameOnStop(option : StopOption) {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- return;
- }
- camera?.cameraFrameOnStop(option)
- }
-
- switchCamera(option : SwitchOption) {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- return;
- }
- camera?.switchCamera(option.position)
-
- option.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- }
-}
-
-let context : CameraContext = new CameraContext();
-
-export function createCameraContext() : CameraContext {
- return context;
-}
-
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-export const takePhoto : TakePhoto = function (options : TakePhotoOption) {
- context.takePhoto(options)
-}
-
-export const setZoom : SetZoom = function (options : CameraContextSetZoomOption) {
- context.setZoom(options)
-}
-
-export const startRecord : StartRecord = function (options : CameraContextStartRecordOption) {
- context.startRecord(options)
-}
-
-export const stopRecord : StopRecord = function (options : CameraContextStopRecordOption) {
- context.stopRecord(options)
-}
-
-@UTSJS.keepAlive
-export function onCameraFrameListener(options : OnCameraFrameListenerOption) {
- context.onCameraFrameListener(options)
-}
-
-export const startCameraFrame : StartCameraFrame = function (options : CameraFrameListenerStartOption) {
- context.cameraFrameOnStart(options)
-}
-
-export const stopCameraFrame : StopCameraFrame = function (options : StopOption) {
- context.cameraFrameOnStop(options)
-}
-
-export const switchCamera : SwitchCamera = function (options : SwitchOption) {
- context.switchCamera(options)
-}
\ No newline at end of file
diff --git a/unpackage/dist/build/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.vue.ts b/unpackage/dist/build/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.vue.ts
deleted file mode 100644
index 2a804f7..0000000
--- a/unpackage/dist/build/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.vue.ts
+++ /dev/null
@@ -1,166 +0,0 @@
-//
-//
-//
-//
-
- import { UIView } from "UIKit"
- import { CameraView } from "./camera";
- import { CameraConfig } from '../interface'
- import { CameraManager } from "./CameraManager";
-
- //原生提供以下属性或方法的实现
- export default {
- data() {
- return {
- };
- },
- /**
- * 组件名称,也就是开发者使用的标签
- */
- name: "xf-camera",
- /**
- * 组件涉及的事件声明,只有声明过的事件,才能被正常发送
- */
- emits: ['stop', 'error', 'ready'],
- /**
- * 属性声明,组件的使用者会传递这些属性值到组件
- */
- props: {
- "mode": {
- type: String,
- default: "normal"
- },
- "resolution": {
- type: String,
- default: "medium" // low | high
- },
- "position": {
- type: String,
- default: "back" // front前置 |back 后置
- },
- "flash": {
- type: String,
- default: "auto" // auto, on, off, torch
- },
- "frameSize": {
- type: String,
- default: "medium" // small|large
- }
- },
- /**
- * 属性变化监听器实现
- */
- watch: {
- "position": {
- /**
- * 这里监听属性变化,并进行组件内部更新
- */
- handler(newValue : String, _oldValue : String) {
- CameraManager.getInstance().getCameraView()?.switchCamera(newValue)
- },
- /**
- * 创建时是否通过此方法更新属性,默认值为false
- */
- immediate: false
- },
- "flash": {
- /**
- * 这里监听属性变化,并进行组件内部更新
- */
- handler(newValue : String, _oldValue : String) {
- CameraManager.getInstance().getCameraView()?.setFlash(newValue)
- },
- /**
- * 创建时是否通过此方法更新属性,默认值为false
- */
- immediate: false
- }
- },
- /**
- * 规则:如果没有配置expose,则methods中的方法均对外暴露,如果配置了expose,则以expose的配置为准向外暴露
- * ['publicMethod'] 含义为:只有 `publicMethod` 在实例上可用
- */
- expose: [],
- methods: {
-
- },
-
-
- /**
- * 组件被创建,组件第一个生命周期,
- * 在内存中被占用的时候被调用,开发者可以在这里执行一些需要提前执行的初始化逻辑
- * [可选实现]
- */
- created() {
-
- },
- /**
- * 对应平台的view载体即将被创建,对应前端beforeMount
- * [可选实现]
- */
- NVBeforeLoad() {
-
- },
- /**
- * 创建原生View,必须定义返回值类型
- * 开发者需要重点实现这个函数,声明原生组件被创建出来的过程,以及最终生成的原生组件类型
- * [必须实现]
- */
- NVLoad() : UIView {
- let previewView = new UIView()
- previewView.tag = 9527
- return previewView
- },
-
- /**
- * 原生View已创建
- * [可选实现]
- */
- NVLoaded() {
-
- },
- /**
- * 原生View布局完成
- * [可选实现]
- */
- NVLayouted() {
- let previewView = this.$el as UIView;
- let cameraView = new CameraView(previewView, this, {
- resolution: this.resolution,
- frameSize: this.frameSize,
- devicePosition: this.position,
- flash: this.flash
- } as CameraConfig)
- CameraManager.getInstance().setCameraView(cameraView);
- },
- /**
- * 原生View将释放
- * [可选实现]
- */
- NVBeforeUnload() {
- let ret : Map = new Map();
- let detail : Map = new Map();
- detail.set("detail", ret)
- this.$emit("stop", detail);
-
- CameraManager.getInstance().getCameraView()?.unbindCamera()
- },
- /**
- * 原生View已释放,这里可以做释放View之后的操作
- * [可选实现]
- */
- NVUnloaded() {
- CameraManager.getInstance().dispose()
- },
- /**
- * 组件销毁
- * [可选实现]
- */
- unmounted() {
-
- }
- }
-/*
-
-
-*/
\ No newline at end of file
diff --git a/unpackage/dist/build/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/interface.uts.ts b/unpackage/dist/build/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/interface.uts.ts
deleted file mode 100644
index ae3b66f..0000000
--- a/unpackage/dist/build/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/interface.uts.ts
+++ /dev/null
@@ -1,214 +0,0 @@
-export type GeneralCallbackResult = {
- /** 错误信息 */
- errMsg : string
-}
-export type TakePhotoSuccessCallbackResult = {
- /** 照片文件的临时路径 (本地路径),安卓是jpg图片格式,ios是png */
- tempImagePath : string
- quality : string
- errMsg : string
-}
-/** 接口调用失败的回调函数 */
-export type TakePhotoFailCallback = (res : GeneralCallbackResult) => void
-/** 接口调用成功的回调函数 */
-export type TakePhotoSuccessCallback = (
- result : TakePhotoSuccessCallbackResult
-) => void
-
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type TakePhotoCompleteCallback = (res : GeneralCallbackResult) => void
-
-export type TakePhotoOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete ?: TakePhotoCompleteCallback
- /** 接口调用失败的回调函数 */
- fail ?: TakePhotoFailCallback
- /** 成像质量
- *
- * 可选值:
- * - 'high': 高质量;
- * - 'normal': 普通质量;
- * - 'low': 低质量;
- * - 'original': 原图; */
- quality ?: 'high' | 'normal' | 'low' | 'original'
- /**
- * 是否开启镜像 */
- selfieMirror ?: boolean
- /** 接口调用成功的回调函数 */
- success ?: TakePhotoSuccessCallback
-}
-
-
-export type SetZoomSuccessCallbackResult = {
- /** 实际设置的缩放级别。由于系统限制,某些机型可能无法设置成指定值,会改用最接近的可设值。 */
- zoom : number
- errMsg : string
-}
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type SetZoomCompleteCallback = (res : GeneralCallbackResult) => void
-/** 接口调用失败的回调函数 */
-export type SetZoomFailCallback = (res : GeneralCallbackResult) => void
-/** 接口调用成功的回调函数 */
-export type CameraContextSetZoomSuccessCallback = (
- result : SetZoomSuccessCallbackResult
-) => void
-
-export type CameraContextSetZoomOption = {
- /** 缩放级别,范围[1, maxZoom]。zoom 可取小数,精确到小数后一位。maxZoom 可在 bindinitdone 返回值中获取。 */
- zoom : number
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete ?: SetZoomCompleteCallback
- /** 接口调用失败的回调函数 */
- fail ?: SetZoomFailCallback
- /** 接口调用成功的回调函数 */
- success ?: CameraContextSetZoomSuccessCallback
-}
-
-export type StartRecordTimeoutCallbackResult = {
- /** 视频的文件的临时路径 (本地路径) */
- tempVideoPath : string
-}
-
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type StartRecordCompleteCallback = (res : GeneralCallbackResult) => void
-/** 接口调用失败的回调函数 */
-export type StartRecordFailCallback = (res : GeneralCallbackResult) => void
-/** 超过录制时长上限时会结束录像并触发此回调,录像异常退出时也会触发此回调 */
-export type StartRecordTimeoutCallback = (
- result : StartRecordTimeoutCallbackResult
-) => void
-/** 接口调用成功的回调函数 */
-export type CameraContextStartRecordSuccessCallback = (
- res : GeneralCallbackResult
-) => void
-export type CameraContextStartRecordOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete ?: StartRecordCompleteCallback
- /** 接口调用失败的回调函数 */
- fail ?: StartRecordFailCallback
- /**
- * 是否开启镜像 */
- selfieMirror ?: boolean
- /** 接口调用成功的回调函数 */
- success ?: CameraContextStartRecordSuccessCallback
- /**
- * 录制时长上限,单位为秒,最长不能超过 5 分钟 */
- timeout ?: number
- /** 超过录制时长上限时会结束录像并触发此回调,录像异常退出时也会触发此回调 */
- timeoutCallback ?: StartRecordTimeoutCallback
-}
-
-export type StopRecordSuccessCallbackResult = {
- /** 视频的文件的临时路径 (本地路径) */
- tempVideoPath : string
- errMsg : string
-}
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type StopRecordCompleteCallback = (res : GeneralCallbackResult) => void
-/** 接口调用失败的回调函数 */
-export type StopRecordFailCallback = (res : GeneralCallbackResult) => void
-/** 接口调用成功的回调函数 */
-export type CameraContextStopRecordSuccessCallback = (
- result : StopRecordSuccessCallbackResult
-) => void
-export type CameraContextStopRecordOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete ?: StopRecordCompleteCallback
- /** 启动视频压缩,压缩效果同`chooseVideo` */
- compressed ?: boolean
- /** 接口调用失败的回调函数 */
- fail ?: StopRecordFailCallback
- /** 接口调用成功的回调函数 */
- success ?: CameraContextStopRecordSuccessCallback
-}
-
-/** 回调函数 */
-export type OnCameraFrameCallback = (result : OnCameraFrameCallbackResult) => void
-export type OnCameraFrameCallbackResult = {
- /** 图像像素点数据,一维数组,每四项表示一个像素点的 rgba */
- data : any
- /** 图像数据矩形的高度 */
- height : number
- /** 图像数据矩形的宽度 */
- width : number
-}
-/** 接口调用成功的回调函数 */
-export type StartSuccessCallback = (res : GeneralCallbackResult) => void
-/** 接口调用失败的回调函数 */
-type StartFailCallback = (res : GeneralCallbackResult) => void
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-type StartCompleteCallback = (res : GeneralCallbackResult) => void
-export type CameraFrameListenerStartOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete ?: StartCompleteCallback
- /** 接口调用失败的回调函数 */
- fail ?: StartFailCallback
- /** 接口调用成功的回调函数 */
- success ?: StartSuccessCallback
- /** [Worker](https://developers.weixin.qq.com/miniprogram/dev/api/worker/Worker.html)
- *
- * 可选参数。如果需要在 iOS ExperimentalWorker 内监听摄像头帧数据,则需要传入对应 Worker 对象。详情 [Worker.getCameraFrameData](https://developers.weixin.qq.com/miniprogram/dev/api/worker/Worker.getCameraFrameData.html) */
- // worker ?: Worker
-}
-
-
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type StopCompleteCallback = (res : GeneralCallbackResult) => void
-/** 接口调用失败的回调函数 */
-export type StopFailCallback = (res : GeneralCallbackResult) => void
-/** 接口调用成功的回调函数 */
-export type StopSuccessCallback = (res : GeneralCallbackResult) => void
-export type StopOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete ?: StopCompleteCallback
- /** 接口调用失败的回调函数 */
- fail ?: StopFailCallback
- /** 接口调用成功的回调函数 */
- success ?: StopSuccessCallback
-}
-
-export type FlashMode = 'auto' | 'on' | 'off' | 'torch'
-export type DevicePosition = 'back' | 'front'
-export type Resolution = 'low' | 'medium' | 'high'
-export type FrameSize = 'medium' | 'small' | 'large'
-export type QualityType = 'high' | 'normal' | 'low' | 'original'
-
-
-export type CameraConfig = {
- flash ?: FlashMode
- devicePosition ?: DevicePosition
- resolution ?: Resolution
- frameSize ?: FrameSize
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type SwitchCompleteCallback = (res : GeneralCallbackResult) => void
-/** 接口调用失败的回调函数 */
-export type SwitchFailCallback = (res : GeneralCallbackResult) => void
-/** 接口调用成功的回调函数 */
-export type SwitchSuccessCallback = (res : GeneralCallbackResult) => void
-export type SwitchOption = {
- position : DevicePosition
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete ?: SwitchCompleteCallback
- /** 接口调用失败的回调函数 */
- fail ?: SwitchFailCallback
- /** 接口调用成功的回调函数 */
- success ?: SwitchSuccessCallback
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-export type OnCameraFrameListenerOption = {
- success ?: OnCameraFrameCallback
-}
-
-export type TakePhoto = (options : TakePhotoOption) => void
-export type SetZoom = (options : CameraContextSetZoomOption) => void
-export type StartRecord = (options : CameraContextStartRecordOption) => void
-export type StopRecord = (options : CameraContextStopRecordOption) => void
-export type OnCameraFrameListener = (options : OnCameraFrameListenerOption) => void
-export type StartCameraFrame = (options : CameraFrameListenerStartOption) => void
-export type StopCameraFrame = (options : StopOption) => void
-export type SwitchCamera = (options : SwitchOption) => void
\ No newline at end of file
diff --git a/unpackage/dist/build/.uvue/app-android/App.uvue b/unpackage/dist/build/.uvue/app-android/App.uvue
deleted file mode 100644
index bb5f1d5..0000000
--- a/unpackage/dist/build/.uvue/app-android/App.uvue
+++ /dev/null
@@ -1,34 +0,0 @@
-let firstBackTime = 0;
-const __sfc__ = defineApp({
- onLaunch() {
- console.log('App Launch');
- },
- onShow() {
- console.log('App Show');
- },
- onHide() {
- console.log('App Hide');
- },
- onLastPageBackPress() {
- console.log('App LastPageBackPress');
- if (firstBackTime == 0) {
- uni.showToast({
- title: '再按一次退出应用',
- position: 'bottom',
- });
- firstBackTime = Date.now();
- setTimeout(() => {
- firstBackTime = 0;
- }, 2000);
- }
- else if (Date.now() - firstBackTime < 2000) {
- firstBackTime = Date.now();
- uni.exit();
- }
- },
- onExit() {
- console.log('App Exit');
- },
-});
-export default __sfc__;
-const GenAppStyles = [_uM([["uni-row", _pS(_uM([["flexDirection", "row"]]))], ["uni-column", _pS(_uM([["flexDirection", "column"]]))]])];
diff --git a/unpackage/dist/build/.uvue/app-android/main.uts b/unpackage/dist/build/.uvue/app-android/main.uts
deleted file mode 100644
index 8ecbd99..0000000
--- a/unpackage/dist/build/.uvue/app-android/main.uts
+++ /dev/null
@@ -1,36 +0,0 @@
-import App from './App.uvue';
-import { createSSRApp } from 'vue';
-export function createApp(): UTSJSONObject {
- const app = createSSRApp(App);
- return {
- app
- };
-}
-export function main(app: IApp) {
- definePageRoutes();
- defineAppConfig();
- (createApp()['app'] as VueApp).mount(app, GenUniApp());
-}
-export class UniAppConfig extends io.dcloud.uniapp.appframe.AppConfig {
- override name: string = "SkinCamera";
- override appid: string = "__UNI__644401D";
- override versionName: string = "1.0.0";
- override versionCode: string = "100";
- override uniCompilerVersion: string = "4.87";
- constructor() { super(); }
-}
-import GenPagesIndexIndexClass from './pages/index/index.uvue';
-function definePageRoutes() {
- __uniRoutes.push({ path: "pages/index/index", component: GenPagesIndexIndexClass, meta: { isQuit: true } as UniPageMeta, style: _uM([["navigationBarTitleText", "uni-app x"]]) } as UniPageRoute);
-}
-const __uniTabBar: Map | null = null;
-const __uniLaunchPage: Map = _uM([["url", "pages/index/index"], ["style", _uM([["navigationBarTitleText", "uni-app x"]])]]);
-function defineAppConfig() {
- __uniConfig.entryPagePath = '/pages/index/index';
- __uniConfig.globalStyle = _uM([["navigationBarTextStyle", "black"], ["navigationBarTitleText", "uni-app x"], ["navigationBarBackgroundColor", "#F8F8F8"], ["backgroundColor", "#F8F8F8"]]);
- __uniConfig.getTabBarConfig = (): Map | null => null;
- __uniConfig.tabBar = __uniConfig.getTabBarConfig();
- __uniConfig.conditionUrl = '';
- __uniConfig.uniIdRouter = _uM();
- __uniConfig.ready = true;
-}
diff --git a/unpackage/dist/build/.uvue/app-android/pages/index/index.uvue b/unpackage/dist/build/.uvue/app-android/pages/index/index.uvue
deleted file mode 100644
index 6157adf..0000000
--- a/unpackage/dist/build/.uvue/app-android/pages/index/index.uvue
+++ /dev/null
@@ -1,70 +0,0 @@
-import { takePhoto, TakePhotoOption, TakePhotoSuccessCallbackResult, GeneralCallbackResult } from '@/uni_modules/Skin-cameraUTS';
-const __sfc__ = defineComponent({
- data() {
- return {
- yanse: "red",
- widthNum: 750,
- heightNum: 200,
- flash: "on",
- device: "front",
- imagePath: "",
- videoPath: "https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/2minute-demo.mp4"
- };
- },
- onLoad() {
- // let permissionNeed = ["android.permission.CAMERA", "android.permission.RECORD_AUDIO",
- // "android.permission.WRITE_EXTERNAL_STORAGE"]
- // // 请求权限
- // UTSAndroid.requestSystemPermission(UTSAndroid.getUniActivity()!, permissionNeed, function (allRight : boolean, _ : string[]) {
- // if (allRight) {
- // // 权限请求成功
- // } else {
- // //用户拒绝了部分权限
- // }
- // }, function (_ : boolean, _ : string[]) {
- // //用户拒绝了部分权限
- // })
- },
- methods: {
- onError(res: any) {
- console.log(res);
- },
- _takePhoto() {
- takePhoto({
- success: (res: TakePhotoSuccessCallbackResult) => {
- console.log('takePhoto', res);
- this.imagePath = res.tempImagePath;
- // _previewImage();
- },
- fail: (res: GeneralCallbackResult) => {
- console.log('takePhoto', res);
- }
- } as TakePhotoOption);
- }
- }
-});
-export default __sfc__;
-function GenPagesIndexIndexRender(this: InstanceType): any | null {
- const _ctx = this;
- const _cache = this.$.renderCache;
- return _cE("scroll-view", _uM({ class: "page-scroll-view" }), [
- _cE("view", null, [
- _cE("button", _uM({ onClick: _ctx._takePhoto }), "拍照", 8 /* PROPS */, ["onClick"]),
- _cE(XfCameraComponent.name, _uM({
- style: _nS(_uM({ "height": "750rpx", "background-color": "red" })),
- onError: _ctx.onError,
- flash: _ctx.flash,
- position: _ctx.device
- }), null, 44 /* STYLE, PROPS, NEED_HYDRATION */, ["onError", "flash", "position"]),
- isTrue(_ctx.imagePath)
- ? _cE("image", _uM({
- key: 0,
- mode: "aspectFit",
- src: _ctx.imagePath
- }), null, 8 /* PROPS */, ["src"])
- : _cC("v-if", true)
- ])
- ]);
-}
-const GenPagesIndexIndexStyles = [_uM([["video", _pS(_uM([["width", "100%"], ["height", 200]]))]])];
-import { XfCameraComponent } from '@/uni_modules/Skin-cameraUTS?uts-proxy';
diff --git a/unpackage/dist/build/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/CameraManager.uts b/unpackage/dist/build/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/CameraManager.uts
deleted file mode 100644
index c0a1c9a..0000000
--- a/unpackage/dist/build/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/CameraManager.uts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { CameraView } from "./camera";
-export class CameraManager {
- private cameraView: CameraView | null = null;
- private static instance: CameraManager | null = null;
- public static getInstance(): CameraManager {
- if (CameraManager.instance == null) {
- CameraManager.instance = new CameraManager();
- }
- return CameraManager.instance!;
- }
- public setCameraView(cameraView?: CameraView): void {
- this.cameraView = cameraView!;
- }
- public getCameraView(): CameraView | null {
- return this.cameraView;
- }
- public dispose(): void {
- this.cameraView = null;
- }
-}
diff --git a/unpackage/dist/build/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/camera.uts b/unpackage/dist/build/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/camera.uts
deleted file mode 100644
index 4ef358c..0000000
--- a/unpackage/dist/build/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/camera.uts
+++ /dev/null
@@ -1,414 +0,0 @@
-import ProcessCameraProvider from 'androidx.camera.lifecycle.ProcessCameraProvider';
-import Preview from 'androidx.camera.core.Preview';
-import MirrorMode from 'androidx.camera.core.MirrorMode';
-import PreviewView from 'androidx.camera.view.PreviewView';
-import Context from 'android.content.Context';
-import FrameLayout from 'android.widget.FrameLayout';
-import ViewGroup from 'android.view.ViewGroup';
-import CameraSelector from 'androidx.camera.core.CameraSelector';
-import ImageAnalysis from 'androidx.camera.core.ImageAnalysis';
-import UseCaseGroup from 'androidx.camera.core.UseCaseGroup';
-import ContextCompat from 'androidx.core.content.ContextCompat';
-import LifecycleOwner from 'androidx.lifecycle.LifecycleOwner';
-import ImageCapture from 'androidx.camera.core.ImageCapture';
-import Size from 'android.util.Size';
-import ImageCaptureException from 'androidx.camera.core.ImageCaptureException';
-import File from 'java.io.File';
-import ImageProxy from 'androidx.camera.core.ImageProxy';
-import CameraControl from 'androidx.camera.core.CameraControl';
-import VideoCapture from 'androidx.camera.video.VideoCapture';
-import Recorder from 'androidx.camera.video.Recorder';
-import Recording from 'androidx.camera.video.Recording';
-import FileOutputOptions from 'androidx.camera.video.FileOutputOptions';
-import Quality from 'androidx.camera.video.Quality';
-import QualitySelector from 'androidx.camera.video.QualitySelector';
-import VideoRecordEvent from 'androidx.camera.video.VideoRecordEvent';
-// import Bitmap from 'android.graphics.Bitmap';
-// import FileOutputStream from 'java.io.FileOutputStream';
-// import MediaMetadataRetriever from 'android.media.MediaMetadataRetriever';
-import ExecutorService from 'java.util.concurrent.ExecutorService';
-import Executors from 'java.util.concurrent.Executors';
-import ImageFormat from 'android.graphics.ImageFormat';
-import { TakePhotoOption, GeneralCallbackResult, TakePhotoSuccessCallbackResult, CameraContextSetZoomOption, SetZoomSuccessCallbackResult, CameraContextStopRecordOption, CameraContextStartRecordOption, StartRecordTimeoutCallbackResult, StopRecordSuccessCallbackResult, OnCameraFrameCallback, OnCameraFrameCallbackResult, CameraFrameListenerStartOption, StopOption, CameraConfig, FlashMode, DevicePosition, Resolution,
-//FrameSize,
-QualityType, OnCameraFrameListenerOption } from '../interface';
-import Bitmap from "android.graphics.Bitmap";
-import FileOutputStream from "java.io.FileOutputStream";
-const FLASH_MODE_MAP = new Map([
- ['auto', ImageCapture.FLASH_MODE_AUTO],
- ['on', ImageCapture.FLASH_MODE_ON],
- ['torch', ImageCapture.FLASH_MODE_ON],
- ['off', ImageCapture.FLASH_MODE_OFF],
-]);
-const DEVICE_POSITION_MAP = new Map([
- ['back', CameraSelector.LENS_FACING_BACK],
- ['front', CameraSelector.LENS_FACING_FRONT],
-]);
-const RESOLUTION_MAP = new Map([
- ['low', Quality.LOWEST],
- ['medium', Quality.HD],
- ['high', Quality.HIGHEST],
-]);
-const QUALITY_MAP = new Map([
- ["high", ImageCapture.CAPTURE_MODE_MAXIMIZE_QUALITY],
- ["low", ImageCapture.CAPTURE_MODE_MINIMIZE_LATENCY],
-]);
-const MIRROR_MODE = new Map([
- [true, MirrorMode.MIRROR_MODE_ON],
- [false, MirrorMode.MIRROR_MODE_OFF],
-]);
-export class CameraView extends FrameLayout {
- private previewView: PreviewView;
- public cameraProvider: ProcessCameraProvider | null = null;
- public cameraControl: CameraControl | null = null;
- private imageCapture: ImageCapture | null = null;
- private videoCapture: VideoCapture | null = null;
- private recording: Recording | null = null;
- private comp: UTSComponent;
- private flashMode: FlashMode = 'auto';
- private devicePosition: DevicePosition = 'back';
- private resolution: Resolution = 'medium';
- // private frameSize : FrameSize = 'medium'
- private quality: QualityType = 'normal';
- private videoFile: File | null = null;
- maxZoom: Float = (1).toFloat();
- minZoom: Float = (1).toFloat();
- private initialized: boolean = false;
- private isListening: boolean = false;
- private videoSelfieMirror: boolean | null = null;
- private cameraContextStopRecordOption: CameraContextStopRecordOption | null = null;
- private onCameraFrameCallback: OnCameraFrameCallback | null = null;
- private cameraExecutor: ExecutorService | null = null;
- private onCameraFrameListenerOption: OnCameraFrameListenerOption | null = null;
- constructor(context: Context, comp: UTSComponent, config: CameraConfig = {} as CameraConfig) {
- super(context);
- this.comp = comp;
- this.flashMode = config.flash ?? 'auto';
- this.devicePosition = config.devicePosition ?? 'back';
- this.resolution = config.resolution ?? 'medium';
- // this.frameSize = config.frameSize ?? 'medium'
- this.previewView = new PreviewView(context);
- let layoutParam = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
- this.addView(this.previewView, layoutParam);
- this.setupCamera();
- }
- setupCamera() {
- // this.checkSelfPermission().then(() => {
- let cameraProviderFuture = ProcessCameraProvider.getInstance(UTSAndroid.getUniActivity()!);
- cameraProviderFuture.addListener(() => {
- try {
- this.cameraProvider = cameraProviderFuture.get();
- this.bindCamera();
- }
- catch (e: any) {
- let ret: Map = new Map();
- ret.set("errMsg", JSON.stringify(e));
- this.comp.$emit('error', ret);
- }
- }, ContextCompat.getMainExecutor(UTSAndroid.getUniActivity()!));
- // }).catch((err) => {
- // let ret : Map = new Map();
- // ret.set("errMsg", err ?? '权限不足')
- // this.comp.$emit('error', ret)
- // })
- }
- bindCamera() {
- let targetResolution = RESOLUTION_MAP.get(this.resolution) ?? Quality.HD;
- let captureMode = QUALITY_MAP.get(this.quality) ?? ImageCapture.CAPTURE_MODE_MAXIMIZE_QUALITY;
- // 创建一个Preview对象,用于显示相机预览
- let preview = new Preview.Builder()
- .build();
- preview.setSurfaceProvider(this.previewView.getSurfaceProvider());
- // 创建一个ImageCapture对象,用于拍照
- let imageCapture = new ImageCapture.Builder()
- .setFlashMode(FLASH_MODE_MAP.get(this.flashMode)!)
- .setCaptureMode(captureMode)
- .build();
- // 选择要使用的相机(后置或前置)
- let cameraSelector = new CameraSelector.Builder()
- .requireLensFacing(DEVICE_POSITION_MAP.get(this.devicePosition)!)
- .build();
- let recorder = Recorder.Builder()
- .setQualitySelector(QualitySelector.from(targetResolution));
- let mirrorMode = this.videoSelfieMirror == null ? MirrorMode.MIRROR_MODE_ON_FRONT_ONLY : MIRROR_MODE.get(this.videoSelfieMirror!);
- let videoCapture = new VideoCapture.Builder(recorder.build())
- .setMirrorMode(mirrorMode!)
- .build();
- this.videoCapture = videoCapture;
- // 将参数应用到 VideoCapture
- this.imageCapture = imageCapture;
- this.cameraProvider!.unbindAll();
- let imageAnalysis = ImageAnalysis.Builder()
- // .setTargetResolution(new Size(1280, 720))
- .setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)
- .build();
- let viewPort = this.previewView.getViewPort()!;
- let useCaseGroup = new UseCaseGroup.Builder()
- .addUseCase(preview)
- .addUseCase(imageAnalysis)
- .addUseCase(imageCapture)
- .addUseCase(videoCapture)
- .setViewPort(viewPort)
- .build();
- this.cameraExecutor = Executors.newSingleThreadExecutor();
- let _this = this;
- class Analyzer implements ImageAnalysis.Analyzer {
- constructor() {
- }
- override analyze(image: ImageProxy) {
- if (_this.isListening) {
- let imageFormat = image.getFormat();
- // 获取图像的宽度和高度
- let width = image.width;
- let height = image.height;
- if (imageFormat == ImageFormat.YUV_420_888) {
- _this.onCameraFrameCallback?.({
- width,
- height,
- data: image
- } as OnCameraFrameCallbackResult);
- _this.onCameraFrameListenerOption?.success?.({
- width,
- height,
- data: image
- } as OnCameraFrameCallbackResult);
- }
- }
- image.close();
- }
- override getDefaultTargetResolution(): Size {
- // 返回默认的目标分辨率
- return Size(640, 480);
- }
- }
- imageAnalysis.setAnalyzer(this.cameraExecutor!, new Analyzer() as ImageAnalysis.Analyzer);
- let camera = this.cameraProvider!.bindToLifecycle(UTSAndroid.getUniActivity()! as LifecycleOwner, cameraSelector, useCaseGroup
- // preview,
- // imageCapture,
- // videoCapture
- );
- this.cameraControl = camera.getCameraControl();
- if (!this.initialized) {
- this.initialized = true;
- let zoomState = camera.getCameraInfo().getZoomState().getValue();
- this.maxZoom = zoomState?.getMaxZoomRatio() ?? (1).toFloat();
- this.minZoom = zoomState?.getMinZoomRatio() ?? (1).toFloat();
- let maxZoom = this.maxZoom;
- let ret: Map = new Map();
- ret.set("maxZoom", maxZoom);
- this.comp.$emit('ready', ret);
- }
- }
- unbindCamera() {
- this.cameraProvider?.unbindAll();
- this.cameraExecutor?.shutdown();
- }
- // checkSelfPermission() : Promise {
- // let permissionNeed = ["android.permission.CAMERA", "android.permission.RECORD_AUDIO", "android.permission.READ_EXTERNAL_STORAGE"]
- // return new Promise((resoleve, _) => {
- // resoleve(true);
- // UTSAndroid.requestSystemPermission(UTSAndroid.getUniActivity()!, permissionNeed, function (allRight : boolean, list : string[]) {
- // if (allRight) {
- // resoleve(true);
- // } else {
- // reject(list);
- // }
- // }, function (_ : boolean, grantedList : string[]) {
- // //grantedList
- // reject(grantedList);
- // })
- // })
- // }
- setConfig(config: CameraConfig = {} as CameraConfig) {
- this.flashMode = config.flash ?? 'auto';
- this.devicePosition = config.devicePosition ?? 'back';
- this.resolution = config.resolution ?? 'medium';
- // this.frameSize = config.frameSize ?? 'medium'
- }
- setFlash(mode: FlashMode) {
- this.flashMode = mode;
- if (FLASH_MODE_MAP.get(mode) == null || this.imageCapture == null)
- return;
- this.imageCapture!.setFlashMode(FLASH_MODE_MAP.get(mode)!);
- }
- switchCamera(position: DevicePosition) {
- this.devicePosition = position;
- if (DEVICE_POSITION_MAP.get(position) == null || this.cameraProvider == null)
- return;
- this.unbindCamera();
- this.bindCamera();
- }
- isResolutionSupported(context: Context, cameraSelector: CameraSelector, targetResolution: Size): boolean {
- return true;
- }
- takePhoto(option: TakePhotoOption) {
- let quality = option.quality ?? "high";
- this.quality = quality;
- if (quality == 'low') {
- this.unbindCamera();
- this.bindCamera();
- }
- // 设置输出目录
- let privateDir = UTSAndroid.getAppCachePath()!;
- const tempFile = new File(privateDir);
- if (!tempFile.exists()) {
- tempFile.mkdirs();
- }
- // 设置文件名
- const photoFile = new File(privateDir, Date.now() + '.png');
- // 处理镜像
- let metadata = new ImageCapture.Metadata();
- metadata.setReversedHorizontal(option.selfieMirror ?? DEVICE_POSITION_MAP.get(this.devicePosition)! == CameraSelector.LENS_FACING_FRONT);
- const outputOptions = ImageCapture.OutputFileOptions.Builder(photoFile).setMetadata(metadata).build();
- class OnImageSavedCallback implements ImageCapture.OnImageSavedCallback {
- override onImageSaved(outputFileResults: ImageCapture.OutputFileResults) {
- option.success?.({
- tempImagePath: photoFile.getAbsolutePath(),
- quality: quality,
- errMsg: 'ok'
- } as TakePhotoSuccessCallbackResult);
- option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult);
- }
- override onError(err: ImageCaptureException) {
- const result: GeneralCallbackResult = {
- errMsg: err.toString()
- };
- option.fail?.(result);
- option.complete?.(result);
- }
- override onCaptureStarted() {
- }
- }
- this.imageCapture!.takePicture(outputOptions, ContextCompat.getMainExecutor(UTSAndroid.getUniActivity()!), new OnImageSavedCallback() as ImageCapture.OnImageSavedCallback);
- }
- setZoom(option: CameraContextSetZoomOption) {
- if (this.cameraControl != null) {
- try {
- this.cameraControl!.setZoomRatio(option.zoom.toFloat());
- option.success?.({
- zoom: option.zoom,
- errMsg: 'ok'
- } as SetZoomSuccessCallbackResult);
- option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult);
- }
- catch (e: any) {
- const result: GeneralCallbackResult = {
- errMsg: e.toString()
- };
- option.complete?.(result);
- option.fail?.(result);
- }
- }
- else {
- const result: GeneralCallbackResult = {
- errMsg: '相机不存在'
- };
- option.complete?.(result);
- option.fail?.(result);
- }
- }
- startRecord(option: CameraContextStartRecordOption) {
- if (option.selfieMirror != null && this.videoSelfieMirror != option.selfieMirror) {
- this.videoSelfieMirror = option.selfieMirror;
- this.unbindCamera();
- this.bindCamera();
- }
- if (this.recording != null || this.videoCapture == null) {
- option.fail?.({
- errMsg: '已经在录制或相机不存在'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '已经在录制或相机不存在'
- } as GeneralCallbackResult);
- return;
- }
- // 设置输出目录
- let privateDir = UTSAndroid.getAppCachePath()!;
- // 设置文件名
- this.videoFile = new File(privateDir, Date.now() + 'video.mp4');
- let outputFileOptions = new FileOutputOptions.Builder(this.videoFile!).build();
- this.recording = this.videoCapture!.output
- .prepareRecording(UTSAndroid.getUniActivity()!, outputFileOptions)
- .withAudioEnabled()
- // .apply(()=>{
- // })
- .start(ContextCompat.getMainExecutor(UTSAndroid.getUniActivity()!), (recordEvent: VideoRecordEvent) => {
- if (recordEvent instanceof VideoRecordEvent.Start) {
- option.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult);
- if (option.timeout != null && option.timeout! > 0) {
- setTimeout(() => {
- this.recording?.stop();
- }, option.timeout!);
- }
- }
- else if (recordEvent instanceof VideoRecordEvent.Finalize) {
- this.recording?.close();
- this.recording = null;
- let tempVideoPath = this.videoFile?.getAbsolutePath()!;
- //let tempThumbPath = extractThumbnail(tempVideoPath) ?? ''
- this.cameraContextStopRecordOption?.success?.({
- tempVideoPath,
- errMsg: 'ok'
- } as StopRecordSuccessCallbackResult);
- option.timeoutCallback?.({
- tempVideoPath,
- } as StartRecordTimeoutCallbackResult);
- }
- });
- }
- stopRecord(option: CameraContextStopRecordOption) {
- if (this.recording == null) {
- option.fail?.({
- errMsg: '未开始录制'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '未开始录制'
- } as GeneralCallbackResult);
- return;
- }
- this.cameraContextStopRecordOption = option;
- this.recording?.stop();
- }
- onCameraFrame(callback: OnCameraFrameCallback | null = null) {
- this.onCameraFrameCallback = callback;
- }
- onCameraFrameListener(option: OnCameraFrameListenerOption) {
- this.onCameraFrameListenerOption = option;
- }
- cameraFrameOnStart(option?: CameraFrameListenerStartOption) {
- this.isListening = true;
- option?.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult);
- }
- cameraFrameOnStop(option?: StopOption) {
- this.isListening = false;
- option?.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult);
- }
-}
-// // 从视频文件中提取封面的函数
-// function extractThumbnail(videoUri : string) : string | null {
-// let retriever = new MediaMetadataRetriever()
-// retriever.setDataSource(videoUri)
-// // 提取视频的某一帧作为封面
-// let thumbnail = retriever.frameAtTime
-// // 保存封面到文件
-// if (thumbnail != null) {
-// let privateDir = UTSAndroid.getAppCachePath();
-// const thumbnailFile = new File(privateDir, Date.now() + '_thumbnail.jpg');
-// let outputStream = FileOutputStream(thumbnailFile)
-// thumbnail.compress(Bitmap.CompressFormat.JPEG, 90, outputStream)
-// outputStream.close()
-// return thumbnailFile.getAbsolutePath()
-// }
-// retriever.release()
-// return null
-// }
diff --git a/unpackage/dist/build/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/index.uts b/unpackage/dist/build/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/index.uts
deleted file mode 100644
index 6f25fa5..0000000
--- a/unpackage/dist/build/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/index.uts
+++ /dev/null
@@ -1,214 +0,0 @@
-import { CameraView } from './camera';
-import { TakePhotoOption, GeneralCallbackResult, CameraContextSetZoomOption, CameraContextStartRecordOption, CameraContextStopRecordOption,
-// CameraFrameListener,
-OnCameraFrameCallback,
-// OnCameraFrameCallbackResult,
-CameraFrameListenerStartOption, StopOption, TakePhoto, SetZoom, StartRecord, StopRecord, StartCameraFrame, StopCameraFrame, OnCameraFrameListenerOption, SwitchOption, SwitchCamera } from '../interface';
-import { CameraManager } from "./CameraManager";
-class CameraFrameListener {
- context!: CameraContext;
- constructor(context: CameraContext) {
- this.context = context;
- }
- start(): void;
- start(option?: CameraFrameListenerStartOption) {
- this.context.getCamera().then((camera: CameraView) => {
- camera.cameraFrameOnStart(option);
- });
- }
- stop(): void;
- stop(option?: StopOption) {
- this.context.getCamera().then((camera: CameraView) => {
- camera.cameraFrameOnStop(option);
- });
- }
-}
-class CameraContext {
- private mCameraFrameListener: CameraFrameListener | null = null;
- constructor() {
- }
- getCamera(): Promise {
- let cameraPreview = CameraManager.getInstance().getCameraView();
- if (cameraPreview != null) {
- return Promise.resolve(cameraPreview);
- }
- let resolveFunc: ((res: CameraView) => void) | null = null;
- let rejectFunc: ((res: string) => void) | null = null;
- let maxAttempts: number = 5;
- let currentAttempt: number = 0;
- function attemptGetCamera() {
- let camera = CameraManager.getInstance().getCameraView();
- if (camera != null) {
- resolveFunc?.(camera);
- }
- else if (currentAttempt < maxAttempts) {
- currentAttempt++;
- setTimeout(() => {
- attemptGetCamera();
- }, 100);
- }
- else {
- rejectFunc?.('Camera not found after multiple attempts');
- }
- }
- return new Promise((resolve, reject) => {
- resolveFunc = resolve;
- rejectFunc = reject;
- attemptGetCamera();
- });
- }
- takePhoto(option: TakePhotoOption) {
- this.getCamera().then((camera: CameraView) => {
- camera.takePhoto(option);
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- });
- }
- setZoom(option: CameraContextSetZoomOption) {
- this.getCamera().then((camera: CameraView) => {
- camera.setZoom(option);
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- });
- }
- startRecord(option: CameraContextStartRecordOption) {
- this.getCamera().then((camera: CameraView) => {
- camera.startRecord(option);
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- });
- }
- stopRecord(option: CameraContextStopRecordOption) {
- this.getCamera().then((camera: CameraView) => {
- camera.stopRecord(option);
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- });
- }
- onCameraFrame(): CameraFrameListener;
- onCameraFrame(callback: OnCameraFrameCallback | null = null): CameraFrameListener {
- if (this.mCameraFrameListener == null) {
- this.mCameraFrameListener = new CameraFrameListener(this);
- }
- this.getCamera().then((camera: CameraView) => {
- camera.onCameraFrame(callback);
- });
- return this.mCameraFrameListener!;
- }
- //////////////////////////////////////////////////////
- onCameraFrameListener(option: OnCameraFrameListenerOption) {
- this.getCamera().then((camera: CameraView) => {
- camera.onCameraFrameListener(option);
- }).catch(() => {
- console.log("未找到相机");
- });
- }
- cameraFrameOnStart(option: CameraFrameListenerStartOption) {
- this.getCamera().then((camera: CameraView) => {
- camera.cameraFrameOnStart(option);
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- });
- }
- cameraFrameOnStop(option: StopOption) {
- this.getCamera().then((camera: CameraView) => {
- camera.cameraFrameOnStop(option);
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- });
- }
- switchCamera(option: SwitchOption) {
- this.getCamera().then((camera: CameraView) => {
- camera.switchCamera(option.position);
- option.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult);
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- });
- }
-}
-let context: CameraContext = new CameraContext();
-export function createCameraContext(): CameraContext {
- return context;
-}
-//////////////////////////////////////////////////////////////////////////////////////////////////
-export const takePhoto: TakePhoto = function (options: TakePhotoOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.takePhoto(options);
- }, null);
-};
-export const setZoom: SetZoom = function (options: CameraContextSetZoomOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.setZoom(options);
- }, null);
-};
-export const startRecord: StartRecord = function (options: CameraContextStartRecordOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.startRecord(options);
- }, null);
-};
-export const stopRecord: StopRecord = function (options: CameraContextStopRecordOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.stopRecord(options);
- }, null);
-};
-@UTSJS.keepAlive
-export function onCameraFrameListener(options: OnCameraFrameListenerOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.onCameraFrameListener(options);
- }, null);
-}
-export const startCameraFrame: StartCameraFrame = function (options: CameraFrameListenerStartOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.cameraFrameOnStart(options);
- }, null);
-};
-export const stopCameraFrame: StopCameraFrame = function (options: StopOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.cameraFrameOnStop(options);
- }, null);
-};
-export const switchCamera: SwitchCamera = function (options: SwitchOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.switchCamera(options);
- }, null);
-};
diff --git a/unpackage/dist/build/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/index.vue b/unpackage/dist/build/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/index.vue
deleted file mode 100644
index c212ea6..0000000
--- a/unpackage/dist/build/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/index.vue
+++ /dev/null
@@ -1,140 +0,0 @@
-//
-//
-//
-//
-//
-import { CameraView } from './camera';
-import { CameraConfig } from '../interface';
-import { CameraManager } from './CameraManager';
-//原生提供以下属性或方法的实现
-export default {
- /**
- * 组件名称,也就是开发者使用的标签
- */
- name: "xf-camera",
- /**
- * 组件涉及的事件声明,只有声明过的事件,才能被正常发送
- */
- emits: ['stop', 'error', 'ready'],
- /**
- * 属性声明,组件的使用者会传递这些属性值到组件
- */
- props: {
- "mode": {
- type: String,
- default: "normal"
- },
- "resolution": {
- type: String,
- default: "medium" // low | high
- },
- "position": {
- type: String,
- default: "back" // front前置 |back 后置
- },
- "flash": {
- type: String,
- default: "auto" // auto, on, off, torch
- },
- "frameSize": {
- type: String,
- default: "medium" // small|large
- }
- },
- /**
- * 组件内部变量声明
- */
- data(): UTSJSONObject {
- return {};
- },
- /**
- * 属性变化监听器实现
- */
- watch: {
- "position": {
- /**
- * 这里监听属性变化,并进行组件内部更新
- */
- handler(newValue: string, _: string) {
- this.$el?.switchCamera(newValue);
- },
- immediate: false // 创建时是否通过此方法更新属性,默认值为false
- },
- "flash": {
- /**
- * 这里监听属性变化,并进行组件内部更新
- */
- handler(newValue: string, _: string) {
- this.$el?.setFlash(newValue);
- },
- immediate: false // 创建时是否通过此方法更新属性,默认值为false
- }
- },
- /**
- * 规则:如果没有配置expose,则methods中的方法均对外暴露,如果配置了expose,则以expose的配置为准向外暴露
- * ['publicMethod'] 含义为:只有 `publicMethod` 在实例上可用
- */
- expose: [],
- methods: {},
- /**
- * [可选实现] 组件被创建,组件第一个生命周期,
- * 在内存中被占用的时候被调用,开发者可以在这里执行一些需要提前执行的初始化逻辑
- */
- created() {
- },
- /**
- * [可选实现] 对应平台的view载体即将被创建,对应前端beforeMount
- */
- NVBeforeLoad() {
- },
- /**
- * [必须实现] 创建原生View,必须定义返回值类型
- * 开发者需要重点实现这个函数,声明原生组件被创建出来的过程,以及最终生成的原生组件类型
- * (Android需要明确知道View类型,需特殊校验)
- */
- NVLoad(): CameraView {
- let previewView = new CameraView(this.$androidContext!, this);
- previewView.setTag("9527");
- CameraManager.getInstance().setCameraView(previewView);
- return previewView;
- },
- /**
- * [可选实现] 原生View已创建
- */
- NVLoaded() {
- },
- /**
- * [可选实现] 原生View布局完成
- */
- NVLayouted() {
- this.$el?.setConfig({
- resolution: this.resolution,
- frameSize: this.frameSize,
- flash: this.flash
- } as CameraConfig);
- this.$el?.switchCamera(this.position);
- },
- /**
- * [可选实现] 原生View将释放
- */
- NVBeforeUnload() {
- let ret: Map = new Map();
- this.$emit('stop', ret);
- this.$el?.unbindCamera();
- },
- /**
- * [可选实现] 原生View已释放,这里可以做释放View之后的操作
- */
- NVUnloaded() {
- CameraManager.getInstance().dispose();
- },
- /**
- * [可选实现] 组件销毁
- */
- unmounted() {
- },
-};
-/*
-
-
-*/
diff --git a/unpackage/dist/build/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/interface.uts b/unpackage/dist/build/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/interface.uts
deleted file mode 100644
index a628176..0000000
--- a/unpackage/dist/build/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/interface.uts
+++ /dev/null
@@ -1,182 +0,0 @@
-export type GeneralCallbackResult = {
- /** 错误信息 */
- errMsg: string;
-};
-export type TakePhotoSuccessCallbackResult = {
- /** 照片文件的临时路径 (本地路径),安卓是jpg图片格式,ios是png */
- tempImagePath: string;
- quality: string;
- errMsg: string;
-};
-/** 接口调用失败的回调函数 */
-export type TakePhotoFailCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用成功的回调函数 */
-export type TakePhotoSuccessCallback = (result: TakePhotoSuccessCallbackResult) => void;
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type TakePhotoCompleteCallback = (res: GeneralCallbackResult) => void;
-export type TakePhotoOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete?: TakePhotoCompleteCallback;
- /** 接口调用失败的回调函数 */
- fail?: TakePhotoFailCallback;
- /** 成像质量
- *
- * 可选值:
- * - 'high': 高质量;
- * - 'normal': 普通质量;
- * - 'low': 低质量;
- * - 'original': 原图; */
- quality?: 'high' | 'normal' | 'low' | 'original';
- /**
- * 是否开启镜像 */
- selfieMirror?: boolean;
- /** 接口调用成功的回调函数 */
- success?: TakePhotoSuccessCallback;
-};
-export type SetZoomSuccessCallbackResult = {
- /** 实际设置的缩放级别。由于系统限制,某些机型可能无法设置成指定值,会改用最接近的可设值。 */
- zoom: number;
- errMsg: string;
-};
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type SetZoomCompleteCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用失败的回调函数 */
-export type SetZoomFailCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用成功的回调函数 */
-export type CameraContextSetZoomSuccessCallback = (result: SetZoomSuccessCallbackResult) => void;
-export type CameraContextSetZoomOption = {
- /** 缩放级别,范围[1, maxZoom]。zoom 可取小数,精确到小数后一位。maxZoom 可在 bindinitdone 返回值中获取。 */
- zoom: number;
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete?: SetZoomCompleteCallback;
- /** 接口调用失败的回调函数 */
- fail?: SetZoomFailCallback;
- /** 接口调用成功的回调函数 */
- success?: CameraContextSetZoomSuccessCallback;
-};
-export type StartRecordTimeoutCallbackResult = {
- /** 视频的文件的临时路径 (本地路径) */
- tempVideoPath: string;
-};
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type StartRecordCompleteCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用失败的回调函数 */
-export type StartRecordFailCallback = (res: GeneralCallbackResult) => void;
-/** 超过录制时长上限时会结束录像并触发此回调,录像异常退出时也会触发此回调 */
-export type StartRecordTimeoutCallback = (result: StartRecordTimeoutCallbackResult) => void;
-/** 接口调用成功的回调函数 */
-export type CameraContextStartRecordSuccessCallback = (res: GeneralCallbackResult) => void;
-export type CameraContextStartRecordOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete?: StartRecordCompleteCallback;
- /** 接口调用失败的回调函数 */
- fail?: StartRecordFailCallback;
- /**
- * 是否开启镜像 */
- selfieMirror?: boolean;
- /** 接口调用成功的回调函数 */
- success?: CameraContextStartRecordSuccessCallback;
- /**
- * 录制时长上限,单位为秒,最长不能超过 5 分钟 */
- timeout?: number;
- /** 超过录制时长上限时会结束录像并触发此回调,录像异常退出时也会触发此回调 */
- timeoutCallback?: StartRecordTimeoutCallback;
-};
-export type StopRecordSuccessCallbackResult = {
- /** 视频的文件的临时路径 (本地路径) */
- tempVideoPath: string;
- errMsg: string;
-};
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type StopRecordCompleteCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用失败的回调函数 */
-export type StopRecordFailCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用成功的回调函数 */
-export type CameraContextStopRecordSuccessCallback = (result: StopRecordSuccessCallbackResult) => void;
-export type CameraContextStopRecordOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete?: StopRecordCompleteCallback;
- /** 启动视频压缩,压缩效果同`chooseVideo` */
- compressed?: boolean;
- /** 接口调用失败的回调函数 */
- fail?: StopRecordFailCallback;
- /** 接口调用成功的回调函数 */
- success?: CameraContextStopRecordSuccessCallback;
-};
-/** 回调函数 */
-export type OnCameraFrameCallback = (result: OnCameraFrameCallbackResult) => void;
-export type OnCameraFrameCallbackResult = {
- /** 图像像素点数据,一维数组,每四项表示一个像素点的 rgba */
- data: any;
- /** 图像数据矩形的高度 */
- height: number;
- /** 图像数据矩形的宽度 */
- width: number;
-};
-/** 接口调用成功的回调函数 */
-export type StartSuccessCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用失败的回调函数 */
-type StartFailCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-type StartCompleteCallback = (res: GeneralCallbackResult) => void;
-export type CameraFrameListenerStartOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete?: StartCompleteCallback;
- /** 接口调用失败的回调函数 */
- fail?: StartFailCallback;
- /** 接口调用成功的回调函数 */
- success?: StartSuccessCallback;
-};
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type StopCompleteCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用失败的回调函数 */
-export type StopFailCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用成功的回调函数 */
-export type StopSuccessCallback = (res: GeneralCallbackResult) => void;
-export type StopOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete?: StopCompleteCallback;
- /** 接口调用失败的回调函数 */
- fail?: StopFailCallback;
- /** 接口调用成功的回调函数 */
- success?: StopSuccessCallback;
-};
-export type FlashMode = 'auto' | 'on' | 'off' | 'torch';
-export type DevicePosition = 'back' | 'front';
-export type Resolution = 'low' | 'medium' | 'high';
-export type FrameSize = 'medium' | 'small' | 'large';
-export type QualityType = 'high' | 'normal' | 'low' | 'original';
-export type CameraConfig = {
- flash?: FlashMode;
- devicePosition?: DevicePosition;
- resolution?: Resolution;
- frameSize?: FrameSize;
-};
-//////////////////////////////////////////////////////////////////////////////////////////////////
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type SwitchCompleteCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用失败的回调函数 */
-export type SwitchFailCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用成功的回调函数 */
-export type SwitchSuccessCallback = (res: GeneralCallbackResult) => void;
-export type SwitchOption = {
- position: DevicePosition;
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete?: SwitchCompleteCallback;
- /** 接口调用失败的回调函数 */
- fail?: SwitchFailCallback;
- /** 接口调用成功的回调函数 */
- success?: SwitchSuccessCallback;
-};
-//////////////////////////////////////////////////////////////////////////////////////////////////
-export type OnCameraFrameListenerOption = {
- success?: OnCameraFrameCallback;
-};
-export type TakePhoto = (options: TakePhotoOption) => void;
-export type SetZoom = (options: CameraContextSetZoomOption) => void;
-export type StartRecord = (options: CameraContextStartRecordOption) => void;
-export type StopRecord = (options: CameraContextStopRecordOption) => void;
-export type OnCameraFrameListener = (options: OnCameraFrameListenerOption) => void;
-export type StartCameraFrame = (options: CameraFrameListenerStartOption) => void;
-export type StopCameraFrame = (options: StopOption) => void;
-export type SwitchCamera = (options: SwitchOption) => void;
diff --git a/unpackage/dist/build/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/CameraManager.uts b/unpackage/dist/build/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/CameraManager.uts
deleted file mode 100644
index c0a1c9a..0000000
--- a/unpackage/dist/build/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/CameraManager.uts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { CameraView } from "./camera";
-export class CameraManager {
- private cameraView: CameraView | null = null;
- private static instance: CameraManager | null = null;
- public static getInstance(): CameraManager {
- if (CameraManager.instance == null) {
- CameraManager.instance = new CameraManager();
- }
- return CameraManager.instance!;
- }
- public setCameraView(cameraView?: CameraView): void {
- this.cameraView = cameraView!;
- }
- public getCameraView(): CameraView | null {
- return this.cameraView;
- }
- public dispose(): void {
- this.cameraView = null;
- }
-}
diff --git a/unpackage/dist/build/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/camera.uts b/unpackage/dist/build/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/camera.uts
deleted file mode 100644
index 8b56c0f..0000000
--- a/unpackage/dist/build/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/camera.uts
+++ /dev/null
@@ -1,421 +0,0 @@
-import { UIImage, UIView } from 'UIKit';
-import { AVCaptureDevice, AVCaptureDeviceInput, AVCaptureSession, AVCaptureVideoPreviewLayer, AVMediaType, AVLayerVideoGravity, AVCaptureVideoDataOutput, AVCaptureVideoDataOutputSampleBufferDelegate, AVCaptureOutput, AVCaptureConnection, AVCapturePhotoOutput, AVCapturePhotoSettings, AVCapturePhotoCaptureDelegate, AVCaptureMovieFileOutput, AVCaptureFileOutputRecordingDelegate, AVCaptureFileOutput } from "AVFoundation";
-import { CMSampleBuffer, CMSampleBufferGetImageBuffer } from 'CoreMedia';
-import { DispatchQueue } from 'Dispatch';
-import { CVPixelBufferGetWidth, CVPixelBufferGetHeight } from "CoreVideo";
-import { NSError, URL } from "Foundation";
-import { TakePhotoOption, GeneralCallbackResult, TakePhotoSuccessCallbackResult, CameraContextSetZoomOption, SetZoomSuccessCallbackResult, CameraContextStopRecordOption, CameraContextStartRecordOption, StartRecordTimeoutCallbackResult, StopRecordSuccessCallbackResult, OnCameraFrameCallback, OnCameraFrameCallbackResult, OnCameraFrameListenerOption, CameraFrameListenerStartOption, StopOption, CameraConfig, FlashMode, DevicePosition, Resolution } from '../interface';
-import { AVCapturePhoto } from 'AVFoundation';
-const RESOLUTION_MAP = new Map([
- ['low', AVCaptureSession.Preset.low],
- ['medium', AVCaptureSession.Preset.medium],
- ['high', AVCaptureSession.Preset.high],
-]);
-const FLASH_MODE_MAP = new Map([
- ['auto', AVCaptureDevice.TorchMode.auto],
- ['on', AVCaptureDevice.TorchMode.on],
- ['torch', AVCaptureDevice.TorchMode.on],
- ['off', AVCaptureDevice.TorchMode.off],
-]);
-let fileOutputRecordingDelegate: MyAVCaptureFileOutputRecordingDelegate | null = null;
-let capturePhotoCaptureDelegate: MyAVCapturePhotoCaptureDelegate | null = null;
-let onCameraFrameListenerOption: OnCameraFrameListenerOption | null = null;
-let cameraContextStopRecordOption: CameraContextStopRecordOption | null = null;
-class MyAVCaptureFileOutputRecordingDelegate implements AVCaptureFileOutputRecordingDelegate {
- private option: CameraContextStartRecordOption;
- constructor(option: CameraContextStartRecordOption) {
- this.option = option;
- }
- fileOutput(output: AVCaptureFileOutput,
- @argumentLabel("didStartRecordingTo")
- fileURL: URL,
- @argumentLabel("from")
- connections: [
- AVCaptureConnection
- ]): void {
- this.option.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult);
- }
- fileOutput(output: AVCaptureFileOutput,
- @argumentLabel("didFinishRecordingTo")
- outputFileURL: URL,
- @argumentLabel("from")
- connections: [
- AVCaptureConnection
- ],
- @argumentLabel("error")
- error?: NSError): void {
- if (error == null) {
- cameraContextStopRecordOption?.success?.({
- tempVideoPath: outputFileURL.path + "",
- errMsg: 'ok'
- } as StopRecordSuccessCallbackResult);
- this.option.timeoutCallback?.({
- tempVideoPath: outputFileURL.path + ""
- } as StartRecordTimeoutCallbackResult);
- }
- else {
- cameraContextStopRecordOption?.fail?.({
- errMsg: '录制失败'
- } as GeneralCallbackResult);
- cameraContextStopRecordOption?.complete?.({
- errMsg: '录制失败'
- } as GeneralCallbackResult);
- }
- }
-}
-class MyAVCapturePhotoCaptureDelegate implements AVCapturePhotoCaptureDelegate {
- private option: TakePhotoOption;
- constructor(option: TakePhotoOption) {
- this.option = option;
- }
- captureOutput(output: AVCapturePhotoOutput,
- @argumentLabel("didFinishProcessingPhoto")
- photo: AVCapturePhoto,
- @argumentLabel("error")
- error: Error): void {
- let imageData = photo.fileDataRepresentation();
- if (imageData == null) {
- const result: GeneralCallbackResult = {
- errMsg: "拍照失败"
- };
- this.option.fail?.(result);
- this.option.complete?.(result);
- return;
- }
- let path = UTSiOS.getDataPath() + (new Date().getTime()).toString() + ".jpg";
- let url = new URL(fileURLWithPath = path);
- let quality = this.option.quality ?? "original";
- if (quality == 'original') {
- try {
- UTSiOS.try(imageData!.write(to = url, options = NSData.WritingOptions.atomic));
- this.option.success?.({
- tempImagePath: path,
- quality: quality,
- errMsg: 'ok'
- } as TakePhotoSuccessCallbackResult);
- this.option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult);
- }
- catch (e) {
- const result: GeneralCallbackResult = {
- errMsg: JSON.stringify(e)
- };
- this.option.fail?.(result);
- this.option.complete?.(result);
- }
- }
- else {
- let image = UIImage(data = imageData!);
- if (image != null) {
- let _quality: number = 0.5;
- if (quality == 'high') {
- _quality = 1.0;
- }
- else if (quality == 'normal') {
- _quality = 0.8;
- }
- else if (quality == 'low') {
- _quality = 0.5;
- }
- let data = image!.jpegData(compressionQuality = _quality.toDouble())!;
- try {
- UTSiOS.try(data.write(to = url, options = NSData.WritingOptions.atomic));
- this.option.success?.({
- tempImagePath: path,
- quality: quality,
- errMsg: 'ok'
- } as TakePhotoSuccessCallbackResult);
- this.option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult);
- }
- catch (e) {
- const result: GeneralCallbackResult = {
- errMsg: JSON.stringify(e)
- };
- this.option.fail?.(result);
- this.option.complete?.(result);
- }
- }
- else {
- const result: GeneralCallbackResult = {
- errMsg: "拍照失败"
- };
- this.option.fail?.(result);
- this.option.complete?.(result);
- }
- }
- }
-}
-export class CameraView implements AVCaptureVideoDataOutputSampleBufferDelegate {
- private captureSession?: AVCaptureSession;
- private videoDeviceInput?: AVCaptureDeviceInput;
- private photoDeviceOutput?: AVCapturePhotoOutput;
- private movieDeviceOutput?: AVCaptureMovieFileOutput;
- private previewLayer?: AVCaptureVideoPreviewLayer;
- private previewView?: UIView;
- private comp?: UTSComponent;
- private flashMode: FlashMode = 'auto';
- private devicePosition: DevicePosition = 'back';
- private resolution: Resolution = 'medium';
- private isListening: boolean = false;
- private onCameraFrameCallback: OnCameraFrameCallback | null = null;
- constructor(previewView: UIView, comp: UTSComponent, config: CameraConfig = {} as CameraConfig) {
- super.init();
- this.previewView = previewView;
- this.comp = comp;
- this.flashMode = config.flash ?? 'auto';
- this.devicePosition = config.devicePosition ?? 'back';
- this.resolution = config.resolution ?? 'medium';
- this.setupCamera();
- }
- setupCamera() {
- this.captureSession = new AVCaptureSession();
- let targetResolution = RESOLUTION_MAP.get(this.resolution) ?? AVCaptureSession.Preset.high;
- this.captureSession!.sessionPreset = targetResolution;
- let device = this.getCameraDevice();
- try {
- //相机
- let deviceInput = UTSiOS.try(new AVCaptureDeviceInput(device = device));
- if (this.captureSession!.canAddInput(deviceInput)) {
- this.captureSession!.addInput(deviceInput);
- }
- //实时流输出
- let output = new AVCaptureVideoDataOutput();
- output.setSampleBufferDelegate(this, queue = DispatchQueue.main);
- if (this.captureSession!.canAddOutput(output)) {
- this.captureSession!.addOutput(output);
- }
- let photoOutput = new AVCapturePhotoOutput();
- // let photoSettings = new AVCapturePhotoSettings(format = [AVVideoCodecKey = AVVideoCodecType.jpeg]);
- // photoOutput.setPreparedPhotoSettingsArray([photoSettings], completionHandler = null);
- if (this.captureSession!.canAddOutput(photoOutput)) {
- this.captureSession!.addOutput(photoOutput);
- }
- let movieOutput = new AVCaptureMovieFileOutput();
- if (this.captureSession!.canAddOutput(movieOutput)) {
- this.captureSession!.addOutput(movieOutput);
- }
- this.videoDeviceInput = deviceInput;
- this.photoDeviceOutput = photoOutput;
- this.movieDeviceOutput = movieOutput;
- this.previewLayer = new AVCaptureVideoPreviewLayer(session = this.captureSession!);
- this.previewLayer!.videoGravity = AVLayerVideoGravity.resizeAspectFill;
- this.previewLayer!.frame = this.previewView!.layer.bounds;
- this.previewView!.layer.addSublayer(this.previewLayer!);
- this.captureSession!.startRunning();
- let ret: Map = new Map();
- ret.set("maxZoom", device.maxAvailableVideoZoomFactor);
- let detail: Map = new Map();
- detail.set("detail", ret);
- this.comp?.$emit("ready", detail);
- }
- catch (e) {
- let ret: Map = new Map();
- ret.set("errMsg", JSON.stringify(e));
- let detail: Map = new Map();
- detail.set("detail", ret);
- this.comp?.$emit("error", detail);
- }
- }
- getCameraDevice(): AVCaptureDevice {
- let cameras = AVCaptureDevice.devices(for = AVMediaType.video);
- let frontCamera: AVCaptureDevice | null = null;
- let backCamera: AVCaptureDevice | null = null;
- let index = 0;
- while (index < cameras.length) {
- if (index == cameras.length) {
- break;
- }
- let camera = cameras[index.toInt()] as AVCaptureDevice;
- if (camera.position == AVCaptureDevice.Position.back) {
- backCamera = camera;
- }
- else {
- frontCamera = camera;
- }
- index++;
- }
- if (this.devicePosition == 'back') {
- return backCamera!;
- }
- else {
- return frontCamera!;
- }
- }
- captureOutput(output: AVCaptureOutput,
- @argumentLabel("didOutput")
- sampleBuffer: CMSampleBuffer,
- @argumentLabel("from")
- connection: AVCaptureConnection): void {
- if (this.isListening) {
- let imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
- let width = CVPixelBufferGetWidth(imageBuffer!);
- let height = CVPixelBufferGetHeight(imageBuffer!);
- const res: OnCameraFrameCallbackResult = {
- width: width as Int,
- height: height as Int,
- data: imageBuffer!
- };
- this.onCameraFrameCallback?.(res);
- onCameraFrameListenerOption?.success?.({
- width: width as Int,
- height: height as Int,
- data: imageBuffer!
- } as OnCameraFrameCallbackResult);
- // this.onCameraFrameListenerOption?.success({
- // width: width as Int,
- // height: height as Int,
- // data: imageBuffer!
- // } as OnCameraFrameCallbackResult)
- // if (imageBuffer != null) {
- // let ciImage = new CIImage(cvPixelBuffer = imageBuffer!)
- // let temporaryContext = new CIContext(options = null)
- // let width = CVPixelBufferGetWidth(imageBuffer!)
- // let height = CVPixelBufferGetHeight(imageBuffer!);
- // let videoImage = temporaryContext.createCGImage(ciImage, from = new CGRect(x = 0, y = 0, width = width, height = height))
- // let image = new UIImage(cgImage = videoImage!)
- // this.onCameraFrameCallback?.({
- // width: width as Int,
- // height: height as Int,
- // data: image
- // } as OnCameraFrameCallbackResult)
- // }
- }
- }
- bindCamera() {
- this.captureSession!.startRunning();
- }
- unbindCamera() {
- this.captureSession!.stopRunning();
- }
- setConfig(config: CameraConfig = {} as CameraConfig) {
- this.flashMode = config.flash ?? 'auto';
- this.devicePosition = config.devicePosition ?? 'back';
- this.resolution = config.resolution ?? 'medium';
- }
- setFlash(mode: FlashMode) {
- this.flashMode = mode;
- let targetFlash = FLASH_MODE_MAP.get(this.flashMode) ?? AVCaptureDevice.TorchMode.auto;
- try {
- let device = this.getCameraDevice();
- if (device.hasTorch && device.isTorchAvailable) {
- UTSiOS.try(device.lockForConfiguration());
- device.torchMode = targetFlash;
- device.unlockForConfiguration();
- }
- }
- catch (e) {
- console.log(e);
- }
- }
- switchCamera(position: DevicePosition) {
- if (!this.captureSession!.isRunning) {
- return;
- }
- this.devicePosition = position;
- try {
- this.captureSession!.beginConfiguration();
- this.captureSession!.removeInput(this.videoDeviceInput!);
- let device = this.getCameraDevice();
- let deviceInput = UTSiOS.try(new AVCaptureDeviceInput(device = device));
- this.captureSession!.addInput(deviceInput);
- this.videoDeviceInput = deviceInput;
- this.captureSession!.commitConfiguration();
- }
- catch (e) {
- console.log(e);
- }
- }
- takePhoto(option: TakePhotoOption) {
- capturePhotoCaptureDelegate = new MyAVCapturePhotoCaptureDelegate(option);
- let settings = new AVCapturePhotoSettings();
- this.photoDeviceOutput?.capturePhoto(with = settings, delegate = capturePhotoCaptureDelegate!);
- }
- setZoom(option: CameraContextSetZoomOption) {
- try {
- let device = this.getCameraDevice();
- // if (device.isRampingVideoZoom) {
- UTSiOS.try(device.lockForConfiguration());
- device.videoZoomFactor = option.zoom.toDouble();
- device.unlockForConfiguration();
- option.success?.({
- zoom: option.zoom,
- errMsg: 'ok'
- } as SetZoomSuccessCallbackResult);
- option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult);
- // } else {
- // const result : GeneralCallbackResult = {
- // errMsg: '相机不支持缩放'
- // }
- // option.complete?.(result)
- // option.fail?.(result)
- // }
- }
- catch (e) {
- const result: GeneralCallbackResult = {
- errMsg: JSON.stringify(e)
- };
- option.complete?.(result);
- option.fail?.(result);
- }
- }
- startRecord(option: CameraContextStartRecordOption) {
- let isRecording = this.movieDeviceOutput?.isRecording ?? false;
- if (isRecording) {
- option.fail?.({
- errMsg: '已经在录制或相机不存在'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '已经在录制或相机不存在'
- } as GeneralCallbackResult);
- return;
- }
- fileOutputRecordingDelegate = new MyAVCaptureFileOutputRecordingDelegate(option);
- let path = UTSiOS.getDataPath() + (new Date().getTime()).toString() + ".mp4";
- let url = new URL(fileURLWithPath = path);
- this.movieDeviceOutput?.startRecording(to = url, recordingDelegate = fileOutputRecordingDelegate!);
- if (option.timeout != null && option.timeout! > 0) {
- setTimeout(() => {
- this.movieDeviceOutput?.stopRecording();
- }, (option.timeout!).toInt());
- }
- }
- stopRecord(option: CameraContextStopRecordOption) {
- let isRecording = this.movieDeviceOutput?.isRecording ?? false;
- if (!isRecording) {
- option.fail?.({
- errMsg: '未开始录制'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '未开始录制'
- } as GeneralCallbackResult);
- return;
- }
- cameraContextStopRecordOption = option;
- this.movieDeviceOutput?.stopRecording();
- }
- onCameraFrame(callback: OnCameraFrameCallback | null = null) {
- this.onCameraFrameCallback = callback;
- }
- onCameraFrameListener(option: OnCameraFrameListenerOption) {
- onCameraFrameListenerOption = option;
- }
- cameraFrameOnStart(option?: CameraFrameListenerStartOption) {
- this.isListening = true;
- option?.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult);
- }
- cameraFrameOnStop(option?: StopOption) {
- this.isListening = false;
- option?.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult);
- }
-}
diff --git a/unpackage/dist/build/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.uts b/unpackage/dist/build/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.uts
deleted file mode 100644
index 947d574..0000000
--- a/unpackage/dist/build/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.uts
+++ /dev/null
@@ -1,164 +0,0 @@
-import { TakePhotoOption, GeneralCallbackResult, CameraContextSetZoomOption, CameraContextStartRecordOption, CameraContextStopRecordOption, OnCameraFrameCallback, CameraFrameListenerStartOption, StopOption, TakePhoto, SetZoom, StartRecord, StopRecord, StartCameraFrame, StopCameraFrame, OnCameraFrameListenerOption, SwitchCamera, SwitchOption } from '../interface';
-import { CameraManager } from './CameraManager';
-class CameraFrameListener {
- context: CameraContext;
- constructor(context: CameraContext) {
- this.context = context;
- }
- start(): void;
- start(option?: CameraFrameListenerStartOption) {
- CameraManager.getInstance().getCameraView()?.cameraFrameOnStart(option);
- }
- stop(): void;
- stop(option?: StopOption) {
- CameraManager.getInstance().getCameraView()?.cameraFrameOnStop(option);
- }
-}
-class CameraContext {
- private mCameraFrameListener: CameraFrameListener | null = null;
- constructor() {
- }
- takePhoto(option: TakePhotoOption) {
- let camera = CameraManager.getInstance().getCameraView();
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- return;
- }
- camera?.takePhoto(option);
- }
- setZoom(option: CameraContextSetZoomOption) {
- let camera = CameraManager.getInstance().getCameraView();
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- return;
- }
- camera?.setZoom(option);
- }
- startRecord(option: CameraContextStartRecordOption) {
- let camera = CameraManager.getInstance().getCameraView();
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- return;
- }
- camera?.startRecord(option);
- }
- stopRecord(option: CameraContextStopRecordOption) {
- let camera = CameraManager.getInstance().getCameraView();
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- return;
- }
- camera?.stopRecord(option);
- }
- onCameraFrame(): CameraFrameListener;
- onCameraFrame(callback: OnCameraFrameCallback | null = null): CameraFrameListener {
- if (this.mCameraFrameListener == null) {
- this.mCameraFrameListener = new CameraFrameListener(this);
- }
- CameraManager.getInstance().getCameraView()?.onCameraFrame(callback);
- return this.mCameraFrameListener!;
- }
- //////////////////////////////////////////////////////
- onCameraFrameListener(option: OnCameraFrameListenerOption) {
- let camera = CameraManager.getInstance().getCameraView();
- if (camera == null) {
- return;
- }
- camera?.onCameraFrameListener(option);
- }
- cameraFrameOnStart(option: CameraFrameListenerStartOption) {
- let camera = CameraManager.getInstance().getCameraView();
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- return;
- }
- camera?.cameraFrameOnStart(option);
- }
- cameraFrameOnStop(option: StopOption) {
- let camera = CameraManager.getInstance().getCameraView();
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- return;
- }
- camera?.cameraFrameOnStop(option);
- }
- switchCamera(option: SwitchOption) {
- let camera = CameraManager.getInstance().getCameraView();
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- return;
- }
- camera?.switchCamera(option.position);
- option.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult);
- }
-}
-let context: CameraContext = new CameraContext();
-export function createCameraContext(): CameraContext {
- return context;
-}
-//////////////////////////////////////////////////////////////////////////////////////////////////
-export const takePhoto: TakePhoto = function (options: TakePhotoOption) {
- context.takePhoto(options);
-};
-export const setZoom: SetZoom = function (options: CameraContextSetZoomOption) {
- context.setZoom(options);
-};
-export const startRecord: StartRecord = function (options: CameraContextStartRecordOption) {
- context.startRecord(options);
-};
-export const stopRecord: StopRecord = function (options: CameraContextStopRecordOption) {
- context.stopRecord(options);
-};
-@UTSJS.keepAlive
-export function onCameraFrameListener(options: OnCameraFrameListenerOption) {
- context.onCameraFrameListener(options);
-}
-export const startCameraFrame: StartCameraFrame = function (options: CameraFrameListenerStartOption) {
- context.cameraFrameOnStart(options);
-};
-export const stopCameraFrame: StopCameraFrame = function (options: StopOption) {
- context.cameraFrameOnStop(options);
-};
-export const switchCamera: SwitchCamera = function (options: SwitchOption) {
- context.switchCamera(options);
-};
diff --git a/unpackage/dist/build/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.vue b/unpackage/dist/build/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.vue
deleted file mode 100644
index c0af7f5..0000000
--- a/unpackage/dist/build/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.vue
+++ /dev/null
@@ -1,153 +0,0 @@
-//
-//
-//
-//
-import { UIView } from "UIKit";
-import { CameraView } from "./camera";
-import { CameraConfig } from '../interface';
-import { CameraManager } from "./CameraManager";
-//原生提供以下属性或方法的实现
-export default {
- data(): UTSJSONObject {
- return {};
- },
- /**
- * 组件名称,也就是开发者使用的标签
- */
- name: "xf-camera",
- /**
- * 组件涉及的事件声明,只有声明过的事件,才能被正常发送
- */
- emits: ['stop', 'error', 'ready'],
- /**
- * 属性声明,组件的使用者会传递这些属性值到组件
- */
- props: {
- "mode": {
- type: String,
- default: "normal"
- },
- "resolution": {
- type: String,
- default: "medium" // low | high
- },
- "position": {
- type: String,
- default: "back" // front前置 |back 后置
- },
- "flash": {
- type: String,
- default: "auto" // auto, on, off, torch
- },
- "frameSize": {
- type: String,
- default: "medium" // small|large
- }
- },
- /**
- * 属性变化监听器实现
- */
- watch: {
- "position": {
- /**
- * 这里监听属性变化,并进行组件内部更新
- */
- handler(newValue: String, _oldValue: String) {
- CameraManager.getInstance().getCameraView()?.switchCamera(newValue);
- },
- /**
- * 创建时是否通过此方法更新属性,默认值为false
- */
- immediate: false
- },
- "flash": {
- /**
- * 这里监听属性变化,并进行组件内部更新
- */
- handler(newValue: String, _oldValue: String) {
- CameraManager.getInstance().getCameraView()?.setFlash(newValue);
- },
- /**
- * 创建时是否通过此方法更新属性,默认值为false
- */
- immediate: false
- }
- },
- /**
- * 规则:如果没有配置expose,则methods中的方法均对外暴露,如果配置了expose,则以expose的配置为准向外暴露
- * ['publicMethod'] 含义为:只有 `publicMethod` 在实例上可用
- */
- expose: [],
- methods: {},
- /**
- * 组件被创建,组件第一个生命周期,
- * 在内存中被占用的时候被调用,开发者可以在这里执行一些需要提前执行的初始化逻辑
- * [可选实现]
- */
- created() {
- },
- /**
- * 对应平台的view载体即将被创建,对应前端beforeMount
- * [可选实现]
- */
- NVBeforeLoad() {
- },
- /**
- * 创建原生View,必须定义返回值类型
- * 开发者需要重点实现这个函数,声明原生组件被创建出来的过程,以及最终生成的原生组件类型
- * [必须实现]
- */
- NVLoad(): UIView {
- let previewView = new UIView();
- previewView.tag = 9527;
- return previewView;
- },
- /**
- * 原生View已创建
- * [可选实现]
- */
- NVLoaded() {
- },
- /**
- * 原生View布局完成
- * [可选实现]
- */
- NVLayouted() {
- let previewView = this.$el as UIView;
- let cameraView = new CameraView(previewView, this, {
- resolution: this.resolution,
- frameSize: this.frameSize,
- devicePosition: this.position,
- flash: this.flash
- } as CameraConfig);
- CameraManager.getInstance().setCameraView(cameraView);
- },
- /**
- * 原生View将释放
- * [可选实现]
- */
- NVBeforeUnload() {
- let ret: Map = new Map();
- let detail: Map = new Map();
- detail.set("detail", ret);
- this.$emit("stop", detail);
- CameraManager.getInstance().getCameraView()?.unbindCamera();
- },
- /**
- * 原生View已释放,这里可以做释放View之后的操作
- * [可选实现]
- */
- NVUnloaded() {
- CameraManager.getInstance().dispose();
- },
- /**
- * 组件销毁
- * [可选实现]
- */
- unmounted() {
- }
-};
-/*
-
-
-*/
diff --git a/unpackage/dist/build/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/interface.uts b/unpackage/dist/build/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/interface.uts
deleted file mode 100644
index a628176..0000000
--- a/unpackage/dist/build/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/interface.uts
+++ /dev/null
@@ -1,182 +0,0 @@
-export type GeneralCallbackResult = {
- /** 错误信息 */
- errMsg: string;
-};
-export type TakePhotoSuccessCallbackResult = {
- /** 照片文件的临时路径 (本地路径),安卓是jpg图片格式,ios是png */
- tempImagePath: string;
- quality: string;
- errMsg: string;
-};
-/** 接口调用失败的回调函数 */
-export type TakePhotoFailCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用成功的回调函数 */
-export type TakePhotoSuccessCallback = (result: TakePhotoSuccessCallbackResult) => void;
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type TakePhotoCompleteCallback = (res: GeneralCallbackResult) => void;
-export type TakePhotoOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete?: TakePhotoCompleteCallback;
- /** 接口调用失败的回调函数 */
- fail?: TakePhotoFailCallback;
- /** 成像质量
- *
- * 可选值:
- * - 'high': 高质量;
- * - 'normal': 普通质量;
- * - 'low': 低质量;
- * - 'original': 原图; */
- quality?: 'high' | 'normal' | 'low' | 'original';
- /**
- * 是否开启镜像 */
- selfieMirror?: boolean;
- /** 接口调用成功的回调函数 */
- success?: TakePhotoSuccessCallback;
-};
-export type SetZoomSuccessCallbackResult = {
- /** 实际设置的缩放级别。由于系统限制,某些机型可能无法设置成指定值,会改用最接近的可设值。 */
- zoom: number;
- errMsg: string;
-};
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type SetZoomCompleteCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用失败的回调函数 */
-export type SetZoomFailCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用成功的回调函数 */
-export type CameraContextSetZoomSuccessCallback = (result: SetZoomSuccessCallbackResult) => void;
-export type CameraContextSetZoomOption = {
- /** 缩放级别,范围[1, maxZoom]。zoom 可取小数,精确到小数后一位。maxZoom 可在 bindinitdone 返回值中获取。 */
- zoom: number;
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete?: SetZoomCompleteCallback;
- /** 接口调用失败的回调函数 */
- fail?: SetZoomFailCallback;
- /** 接口调用成功的回调函数 */
- success?: CameraContextSetZoomSuccessCallback;
-};
-export type StartRecordTimeoutCallbackResult = {
- /** 视频的文件的临时路径 (本地路径) */
- tempVideoPath: string;
-};
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type StartRecordCompleteCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用失败的回调函数 */
-export type StartRecordFailCallback = (res: GeneralCallbackResult) => void;
-/** 超过录制时长上限时会结束录像并触发此回调,录像异常退出时也会触发此回调 */
-export type StartRecordTimeoutCallback = (result: StartRecordTimeoutCallbackResult) => void;
-/** 接口调用成功的回调函数 */
-export type CameraContextStartRecordSuccessCallback = (res: GeneralCallbackResult) => void;
-export type CameraContextStartRecordOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete?: StartRecordCompleteCallback;
- /** 接口调用失败的回调函数 */
- fail?: StartRecordFailCallback;
- /**
- * 是否开启镜像 */
- selfieMirror?: boolean;
- /** 接口调用成功的回调函数 */
- success?: CameraContextStartRecordSuccessCallback;
- /**
- * 录制时长上限,单位为秒,最长不能超过 5 分钟 */
- timeout?: number;
- /** 超过录制时长上限时会结束录像并触发此回调,录像异常退出时也会触发此回调 */
- timeoutCallback?: StartRecordTimeoutCallback;
-};
-export type StopRecordSuccessCallbackResult = {
- /** 视频的文件的临时路径 (本地路径) */
- tempVideoPath: string;
- errMsg: string;
-};
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type StopRecordCompleteCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用失败的回调函数 */
-export type StopRecordFailCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用成功的回调函数 */
-export type CameraContextStopRecordSuccessCallback = (result: StopRecordSuccessCallbackResult) => void;
-export type CameraContextStopRecordOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete?: StopRecordCompleteCallback;
- /** 启动视频压缩,压缩效果同`chooseVideo` */
- compressed?: boolean;
- /** 接口调用失败的回调函数 */
- fail?: StopRecordFailCallback;
- /** 接口调用成功的回调函数 */
- success?: CameraContextStopRecordSuccessCallback;
-};
-/** 回调函数 */
-export type OnCameraFrameCallback = (result: OnCameraFrameCallbackResult) => void;
-export type OnCameraFrameCallbackResult = {
- /** 图像像素点数据,一维数组,每四项表示一个像素点的 rgba */
- data: any;
- /** 图像数据矩形的高度 */
- height: number;
- /** 图像数据矩形的宽度 */
- width: number;
-};
-/** 接口调用成功的回调函数 */
-export type StartSuccessCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用失败的回调函数 */
-type StartFailCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-type StartCompleteCallback = (res: GeneralCallbackResult) => void;
-export type CameraFrameListenerStartOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete?: StartCompleteCallback;
- /** 接口调用失败的回调函数 */
- fail?: StartFailCallback;
- /** 接口调用成功的回调函数 */
- success?: StartSuccessCallback;
-};
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type StopCompleteCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用失败的回调函数 */
-export type StopFailCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用成功的回调函数 */
-export type StopSuccessCallback = (res: GeneralCallbackResult) => void;
-export type StopOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete?: StopCompleteCallback;
- /** 接口调用失败的回调函数 */
- fail?: StopFailCallback;
- /** 接口调用成功的回调函数 */
- success?: StopSuccessCallback;
-};
-export type FlashMode = 'auto' | 'on' | 'off' | 'torch';
-export type DevicePosition = 'back' | 'front';
-export type Resolution = 'low' | 'medium' | 'high';
-export type FrameSize = 'medium' | 'small' | 'large';
-export type QualityType = 'high' | 'normal' | 'low' | 'original';
-export type CameraConfig = {
- flash?: FlashMode;
- devicePosition?: DevicePosition;
- resolution?: Resolution;
- frameSize?: FrameSize;
-};
-//////////////////////////////////////////////////////////////////////////////////////////////////
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type SwitchCompleteCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用失败的回调函数 */
-export type SwitchFailCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用成功的回调函数 */
-export type SwitchSuccessCallback = (res: GeneralCallbackResult) => void;
-export type SwitchOption = {
- position: DevicePosition;
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete?: SwitchCompleteCallback;
- /** 接口调用失败的回调函数 */
- fail?: SwitchFailCallback;
- /** 接口调用成功的回调函数 */
- success?: SwitchSuccessCallback;
-};
-//////////////////////////////////////////////////////////////////////////////////////////////////
-export type OnCameraFrameListenerOption = {
- success?: OnCameraFrameCallback;
-};
-export type TakePhoto = (options: TakePhotoOption) => void;
-export type SetZoom = (options: CameraContextSetZoomOption) => void;
-export type StartRecord = (options: CameraContextStartRecordOption) => void;
-export type StopRecord = (options: CameraContextStopRecordOption) => void;
-export type OnCameraFrameListener = (options: OnCameraFrameListenerOption) => void;
-export type StartCameraFrame = (options: CameraFrameListenerStartOption) => void;
-export type StopCameraFrame = (options: StopOption) => void;
-export type SwitchCamera = (options: SwitchOption) => void;
diff --git a/unpackage/dist/build/app-android/.uniappx/android/src/index.kt b/unpackage/dist/build/app-android/.uniappx/android/src/index.kt
deleted file mode 100644
index 05fc795..0000000
--- a/unpackage/dist/build/app-android/.uniappx/android/src/index.kt
+++ /dev/null
@@ -1,125 +0,0 @@
-@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION")
-package uni.UNI644401D
-import io.dcloud.uniapp.*
-import io.dcloud.uniapp.extapi.*
-import io.dcloud.uniapp.framework.*
-import io.dcloud.uniapp.runtime.*
-import io.dcloud.uniapp.vue.*
-import io.dcloud.uniapp.vue.shared.*
-import io.dcloud.uts.*
-import io.dcloud.uts.Map
-import io.dcloud.uts.Set
-import io.dcloud.uts.UTSAndroid
-import kotlin.properties.Delegates
-import io.dcloud.uniapp.extapi.exit as uni_exit
-import io.dcloud.uniapp.extapi.showToast as uni_showToast
-val runBlock1 = run {
- __uniConfig.getAppStyles = fun(): Map>> {
- return GenApp.styles
- }
-}
-var firstBackTime: Number = 0
-open class GenApp : BaseApp {
- constructor(__ins: ComponentInternalInstance) : super(__ins) {
- onLaunch(fun(_: OnLaunchOptions) {
- console.log("App Launch")
- }
- , __ins)
- onAppShow(fun(_: OnShowOptions) {
- console.log("App Show")
- }
- , __ins)
- onAppHide(fun() {
- console.log("App Hide")
- }
- , __ins)
- onLastPageBackPress(fun() {
- console.log("App LastPageBackPress")
- if (firstBackTime == 0) {
- uni_showToast(ShowToastOptions(title = "再按一次退出应用", position = "bottom"))
- firstBackTime = Date.now()
- setTimeout(fun(){
- firstBackTime = 0
- }, 2000)
- } else if (Date.now() - firstBackTime < 2000) {
- firstBackTime = Date.now()
- uni_exit(null)
- }
- }
- , __ins)
- onExit(fun() {
- console.log("App Exit")
- }
- , __ins)
- }
- companion object {
- val styles: Map>> by lazy {
- _nCS(_uA(
- styles0
- ))
- }
- val styles0: Map>>
- get() {
- return _uM("uni-row" to _pS(_uM("flexDirection" to "row")), "uni-column" to _pS(_uM("flexDirection" to "column")))
- }
- }
-}
-val GenAppClass = CreateVueAppComponent(GenApp::class.java, fun(): VueComponentOptions {
- return VueComponentOptions(type = "app", name = "", inheritAttrs = true, inject = Map(), props = Map(), propsNeedCastKeys = _uA(), emits = Map(), components = Map(), styles = GenApp.styles)
-}
-, fun(instance): GenApp {
- return GenApp(instance)
-}
-)
-val GenPagesIndexIndexClass = CreateVueComponent(GenPagesIndexIndex::class.java, fun(): VueComponentOptions {
- return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesIndexIndex.inheritAttrs, inject = GenPagesIndexIndex.inject, props = GenPagesIndexIndex.props, propsNeedCastKeys = GenPagesIndexIndex.propsNeedCastKeys, emits = GenPagesIndexIndex.emits, components = GenPagesIndexIndex.components, styles = GenPagesIndexIndex.styles)
-}
-, fun(instance, renderer): GenPagesIndexIndex {
- return GenPagesIndexIndex(instance, renderer)
-}
-)
-fun createApp(): UTSJSONObject {
- val app = createSSRApp(GenAppClass)
- return _uO("app" to app)
-}
-fun main(app: IApp) {
- definePageRoutes()
- defineAppConfig()
- (createApp()["app"] as VueApp).mount(app, GenUniApp())
-}
-open class UniAppConfig : io.dcloud.uniapp.appframe.AppConfig {
- override var name: String = "SkinCamera"
- override var appid: String = "__UNI__644401D"
- override var versionName: String = "1.0.0"
- override var versionCode: String = "100"
- override var uniCompilerVersion: String = "4.87"
- constructor() : super() {}
-}
-fun definePageRoutes() {
- __uniRoutes.push(UniPageRoute(path = "pages/index/index", component = GenPagesIndexIndexClass, meta = UniPageMeta(isQuit = true), style = _uM("navigationBarTitleText" to "uni-app x")))
-}
-val __uniLaunchPage: Map = _uM("url" to "pages/index/index", "style" to _uM("navigationBarTitleText" to "uni-app x"))
-fun defineAppConfig() {
- __uniConfig.entryPagePath = "/pages/index/index"
- __uniConfig.globalStyle = _uM("navigationBarTextStyle" to "black", "navigationBarTitleText" to "uni-app x", "navigationBarBackgroundColor" to "#F8F8F8", "backgroundColor" to "#F8F8F8")
- __uniConfig.getTabBarConfig = fun(): Map? {
- return null
- }
- __uniConfig.tabBar = __uniConfig.getTabBarConfig()
- __uniConfig.conditionUrl = ""
- __uniConfig.uniIdRouter = _uM()
- __uniConfig.ready = true
-}
-open class GenUniApp : UniAppImpl() {
- open val vm: GenApp?
- get() {
- return getAppVm() as GenApp?
- }
- open val `$vm`: GenApp?
- get() {
- return getAppVm() as GenApp?
- }
-}
-fun getApp(): GenUniApp {
- return getUniApp() as GenUniApp
-}
diff --git a/unpackage/dist/build/app-android/.uniappx/android/src/pages/index/index.kt b/unpackage/dist/build/app-android/.uniappx/android/src/pages/index/index.kt
deleted file mode 100644
index bb7f3a1..0000000
--- a/unpackage/dist/build/app-android/.uniappx/android/src/pages/index/index.kt
+++ /dev/null
@@ -1,92 +0,0 @@
-@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION")
-package uni.UNI644401D
-import io.dcloud.uniapp.*
-import io.dcloud.uniapp.extapi.*
-import io.dcloud.uniapp.framework.*
-import io.dcloud.uniapp.runtime.*
-import io.dcloud.uniapp.vue.*
-import io.dcloud.uniapp.vue.shared.*
-import io.dcloud.uts.*
-import io.dcloud.uts.Map
-import io.dcloud.uts.Set
-import io.dcloud.uts.UTSAndroid
-import kotlin.properties.Delegates
-import uts.sdk.modules.SkinCameraUTS.XfCameraComponent
-import uts.sdk.modules.SkinCameraUTS.takePhoto
-import uts.sdk.modules.SkinCameraUTS.TakePhotoOption
-import uts.sdk.modules.SkinCameraUTS.TakePhotoSuccessCallbackResult
-import uts.sdk.modules.SkinCameraUTS.GeneralCallbackResult
-open class GenPagesIndexIndex : BasePage {
- constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {
- onLoad(fun(_: OnLoadOptions) {}, __ins)
- }
- @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE")
- override fun `$render`(): Any? {
- val _ctx = this
- val _cache = this.`$`.renderCache
- return _cE("scroll-view", _uM("class" to "page-scroll-view"), _uA(
- _cE("view", null, _uA(
- _cE("button", _uM("onClick" to _ctx._takePhoto), "拍照", 8, _uA(
- "onClick"
- )),
- _cE(XfCameraComponent.name, _uM("style" to _nS(_uM("height" to "750rpx", "background-color" to "red")), "onError" to _ctx.onError, "flash" to _ctx.flash, "position" to _ctx.device), null, 44, _uA(
- "onError",
- "flash",
- "position"
- )),
- if (isTrue(_ctx.imagePath)) {
- _cE("image", _uM("key" to 0, "mode" to "aspectFit", "src" to _ctx.imagePath), null, 8, _uA(
- "src"
- ))
- } else {
- _cC("v-if", true)
- }
- ))
- ))
- }
- open var yanse: String by `$data`
- open var widthNum: Number by `$data`
- open var heightNum: Number by `$data`
- open var flash: String by `$data`
- open var device: String by `$data`
- open var imagePath: String by `$data`
- open var videoPath: String by `$data`
- @Suppress("USELESS_CAST")
- override fun data(): Map {
- return _uM("yanse" to "red", "widthNum" to 750, "heightNum" to 200, "flash" to "on", "device" to "front", "imagePath" to "", "videoPath" to "https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/2minute-demo.mp4")
- }
- open var onError = ::gen_onError_fn
- open fun gen_onError_fn(res: Any) {
- console.log(res)
- }
- open var _takePhoto = ::gen__takePhoto_fn
- open fun gen__takePhoto_fn() {
- takePhoto(TakePhotoOption(success = fun(res: TakePhotoSuccessCallbackResult){
- console.log("takePhoto", res)
- this.imagePath = res.tempImagePath
- }
- , fail = fun(res: GeneralCallbackResult){
- console.log("takePhoto", res)
- }
- ))
- }
- companion object {
- val styles: Map>> by lazy {
- _nCS(_uA(
- styles0
- ), _uA(
- GenApp.styles
- ))
- }
- val styles0: Map>>
- get() {
- return _uM("video" to _pS(_uM("width" to "100%", "height" to 200)))
- }
- var inheritAttrs = true
- var inject: Map> = _uM()
- var emits: Map = _uM()
- var props = _nP(_uM())
- var propsNeedCastKeys: UTSArray = _uA()
- var components: Map = _uM()
- }
-}
diff --git a/unpackage/dist/build/app-android/manifest.json b/unpackage/dist/build/app-android/manifest.json
deleted file mode 100644
index 4d0f04a..0000000
--- a/unpackage/dist/build/app-android/manifest.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "id": "__UNI__644401D",
- "name": "SkinCamera",
- "description": "",
- "version": {
- "name": "1.0.0",
- "code": "100"
- },
- "uni-app-x": {
- "compilerVersion": "4.87"
- },
- "app-android": {
- "distribute": {
- "modules": {
- "uni-exit": {},
- "uni-prompt": {}
- },
- "icons": {
- "hdpi": "",
- "xhdpi": "",
- "xxhdpi": "",
- "xxxhdpi": ""
- },
- "splashScreens": {
- "default": {}
- }
- }
- }
-}
\ No newline at end of file
diff --git a/unpackage/dist/build/app-android/static/logo.png b/unpackage/dist/build/app-android/static/logo.png
deleted file mode 100644
index b5771e2..0000000
Binary files a/unpackage/dist/build/app-android/static/logo.png and /dev/null differ
diff --git a/unpackage/dist/build/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/AndroidManifest.xml b/unpackage/dist/build/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/AndroidManifest.xml
deleted file mode 100644
index 86f5b64..0000000
--- a/unpackage/dist/build/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/AndroidManifest.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/unpackage/dist/build/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/config.json b/unpackage/dist/build/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/config.json
deleted file mode 100644
index 5bb1e34..0000000
--- a/unpackage/dist/build/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/config.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "minSdkVersion": "19",
- "dependencies": [
- "androidx.camera:camera-core:1.4.0-alpha04",
- "androidx.camera:camera-camera2:1.4.0-alpha04",
- "androidx.camera:camera-lifecycle:1.4.0-alpha04",
- "androidx.camera:camera-video:1.4.0-alpha04",
- "androidx.camera:camera-view:1.4.0-alpha04"
- ],
- "components": [
- {
- "name": "xf-camera",
- "class": "uts.sdk.modules.SkinCameraUTS.XfCameraComponent"
- }
- ]
-}
\ No newline at end of file
diff --git a/unpackage/dist/build/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/src/index.kt b/unpackage/dist/build/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/src/index.kt
deleted file mode 100644
index 77b3d46..0000000
--- a/unpackage/dist/build/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/src/index.kt
+++ /dev/null
@@ -1,745 +0,0 @@
-@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION")
-package uts.sdk.modules.SkinCameraUTS
-import android.content.Context
-import android.graphics.ImageFormat
-import android.util.Size
-import android.view.ViewGroup
-import android.widget.FrameLayout
-import androidx.camera.core.CameraControl
-import androidx.camera.core.CameraSelector
-import androidx.camera.core.ImageAnalysis
-import androidx.camera.core.ImageCapture
-import androidx.camera.core.ImageCaptureException
-import androidx.camera.core.ImageProxy
-import androidx.camera.core.MirrorMode
-import androidx.camera.core.Preview
-import androidx.camera.core.UseCaseGroup
-import androidx.camera.lifecycle.ProcessCameraProvider
-import androidx.camera.video.FileOutputOptions
-import androidx.camera.video.Quality
-import androidx.camera.video.QualitySelector
-import androidx.camera.video.Recorder
-import androidx.camera.video.Recording
-import androidx.camera.video.VideoCapture
-import androidx.camera.video.VideoRecordEvent
-import androidx.camera.view.PreviewView
-import androidx.core.content.ContextCompat
-import androidx.lifecycle.LifecycleOwner
-import io.dcloud.uniapp.*
-import io.dcloud.uniapp.UniSDKEngine
-import io.dcloud.uniapp.appframe.PageProxy
-import io.dcloud.uniapp.dom.node.DomNode
-import io.dcloud.uniapp.dom.node.PageNode
-import io.dcloud.uniapp.extapi.*
-import io.dcloud.uniapp.framework.*
-import io.dcloud.uniapp.interfaces.INodeData
-import io.dcloud.uniapp.runtime.*
-import io.dcloud.uniapp.ui.component.IComponentData
-import io.dcloud.uniapp.vue.*
-import io.dcloud.uniapp.vue.shared.*
-import io.dcloud.uts.*
-import io.dcloud.uts.Map
-import io.dcloud.uts.Set
-import io.dcloud.uts.UTSAndroid
-import io.dcloud.uts.component.*
-import io.dcloud.uts.component.UTSComponent
-import java.io.File
-import java.util.concurrent.ExecutorService
-import java.util.concurrent.Executors
-import kotlin.properties.Delegates
-import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.Deferred
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.async
-open class GeneralCallbackResult (
- @JsonNotNull
- open var errMsg: String,
-) : UTSObject()
-open class TakePhotoSuccessCallbackResult (
- @JsonNotNull
- open var tempImagePath: String,
- @JsonNotNull
- open var quality: String,
- @JsonNotNull
- open var errMsg: String,
-) : UTSObject()
-typealias TakePhotoFailCallback = (res: GeneralCallbackResult) -> Unit
-typealias TakePhotoSuccessCallback = (result: TakePhotoSuccessCallbackResult) -> Unit
-typealias TakePhotoCompleteCallback = (res: GeneralCallbackResult) -> Unit
-open class TakePhotoOption (
- open var complete: TakePhotoCompleteCallback? = null,
- open var fail: TakePhotoFailCallback? = null,
- open var quality: String? = null,
- open var selfieMirror: Boolean? = null,
- open var success: TakePhotoSuccessCallback? = null,
-) : UTSObject()
-open class SetZoomSuccessCallbackResult (
- @JsonNotNull
- open var zoom: Number,
- @JsonNotNull
- open var errMsg: String,
-) : UTSObject()
-typealias SetZoomCompleteCallback = (res: GeneralCallbackResult) -> Unit
-typealias SetZoomFailCallback = (res: GeneralCallbackResult) -> Unit
-typealias CameraContextSetZoomSuccessCallback = (result: SetZoomSuccessCallbackResult) -> Unit
-open class CameraContextSetZoomOption (
- @JsonNotNull
- open var zoom: Number,
- open var complete: SetZoomCompleteCallback? = null,
- open var fail: SetZoomFailCallback? = null,
- open var success: CameraContextSetZoomSuccessCallback? = null,
-) : UTSObject()
-open class StartRecordTimeoutCallbackResult (
- @JsonNotNull
- open var tempVideoPath: String,
-) : UTSObject()
-typealias StartRecordCompleteCallback = (res: GeneralCallbackResult) -> Unit
-typealias StartRecordFailCallback = (res: GeneralCallbackResult) -> Unit
-typealias StartRecordTimeoutCallback = (result: StartRecordTimeoutCallbackResult) -> Unit
-typealias CameraContextStartRecordSuccessCallback = (res: GeneralCallbackResult) -> Unit
-open class CameraContextStartRecordOption (
- open var complete: StartRecordCompleteCallback? = null,
- open var fail: StartRecordFailCallback? = null,
- open var selfieMirror: Boolean? = null,
- open var success: CameraContextStartRecordSuccessCallback? = null,
- open var timeout: Number? = null,
- open var timeoutCallback: StartRecordTimeoutCallback? = null,
-) : UTSObject()
-open class StopRecordSuccessCallbackResult (
- @JsonNotNull
- open var tempVideoPath: String,
- @JsonNotNull
- open var errMsg: String,
-) : UTSObject()
-typealias StopRecordCompleteCallback = (res: GeneralCallbackResult) -> Unit
-typealias StopRecordFailCallback = (res: GeneralCallbackResult) -> Unit
-typealias CameraContextStopRecordSuccessCallback = (result: StopRecordSuccessCallbackResult) -> Unit
-open class CameraContextStopRecordOption (
- open var complete: StopRecordCompleteCallback? = null,
- open var compressed: Boolean? = null,
- open var fail: StopRecordFailCallback? = null,
- open var success: CameraContextStopRecordSuccessCallback? = null,
-) : UTSObject()
-typealias OnCameraFrameCallback = (result: OnCameraFrameCallbackResult) -> Unit
-open class OnCameraFrameCallbackResult (
- @JsonNotNull
- open var data: Any,
- @JsonNotNull
- open var height: Number,
- @JsonNotNull
- open var width: Number,
-) : UTSObject()
-typealias StartSuccessCallback = (res: GeneralCallbackResult) -> Unit
-typealias StartFailCallback = (res: GeneralCallbackResult) -> Unit
-typealias StartCompleteCallback = (res: GeneralCallbackResult) -> Unit
-open class CameraFrameListenerStartOption (
- open var complete: StartCompleteCallback? = null,
- open var fail: StartFailCallback? = null,
- open var success: StartSuccessCallback? = null,
-) : UTSObject()
-typealias StopCompleteCallback = (res: GeneralCallbackResult) -> Unit
-typealias StopFailCallback = (res: GeneralCallbackResult) -> Unit
-typealias StopSuccessCallback = (res: GeneralCallbackResult) -> Unit
-open class StopOption (
- open var complete: StopCompleteCallback? = null,
- open var fail: StopFailCallback? = null,
- open var success: StopSuccessCallback? = null,
-) : UTSObject()
-typealias FlashMode = String
-typealias DevicePosition = String
-typealias Resolution = String
-typealias FrameSize = String
-typealias QualityType = String
-open class CameraConfig (
- open var flash: FlashMode? = null,
- open var devicePosition: DevicePosition? = null,
- open var resolution: Resolution? = null,
- open var frameSize: FrameSize? = null,
-) : UTSObject()
-typealias SwitchCompleteCallback = (res: GeneralCallbackResult) -> Unit
-typealias SwitchFailCallback = (res: GeneralCallbackResult) -> Unit
-typealias SwitchSuccessCallback = (res: GeneralCallbackResult) -> Unit
-open class SwitchOption (
- @JsonNotNull
- open var position: DevicePosition,
- open var complete: SwitchCompleteCallback? = null,
- open var fail: SwitchFailCallback? = null,
- open var success: SwitchSuccessCallback? = null,
-) : UTSObject()
-open class OnCameraFrameListenerOption (
- open var success: OnCameraFrameCallback? = null,
-) : UTSObject()
-typealias TakePhoto = (options: TakePhotoOption) -> Unit
-typealias SetZoom = (options: CameraContextSetZoomOption) -> Unit
-typealias StartRecord = (options: CameraContextStartRecordOption) -> Unit
-typealias StopRecord = (options: CameraContextStopRecordOption) -> Unit
-typealias StartCameraFrame = (options: CameraFrameListenerStartOption) -> Unit
-typealias StopCameraFrame = (options: StopOption) -> Unit
-typealias SwitchCamera = (options: SwitchOption) -> Unit
-val FLASH_MODE_MAP = Map(_uA(
- _uA(
- "auto",
- ImageCapture.FLASH_MODE_AUTO
- ),
- _uA(
- "on",
- ImageCapture.FLASH_MODE_ON
- ),
- _uA(
- "torch",
- ImageCapture.FLASH_MODE_ON
- ),
- _uA(
- "off",
- ImageCapture.FLASH_MODE_OFF
- )
-))
-val DEVICE_POSITION_MAP = Map(_uA(
- _uA(
- "back",
- CameraSelector.LENS_FACING_BACK
- ),
- _uA(
- "front",
- CameraSelector.LENS_FACING_FRONT
- )
-))
-val RESOLUTION_MAP = Map(_uA(
- _uA(
- "low",
- Quality.LOWEST
- ),
- _uA(
- "medium",
- Quality.HD
- ),
- _uA(
- "high",
- Quality.HIGHEST
- )
-))
-val QUALITY_MAP = Map(_uA(
- _uA(
- "high",
- ImageCapture.CAPTURE_MODE_MAXIMIZE_QUALITY
- ),
- _uA(
- "low",
- ImageCapture.CAPTURE_MODE_MINIMIZE_LATENCY
- )
-))
-val MIRROR_MODE = Map(_uA(
- _uA(
- true,
- MirrorMode.MIRROR_MODE_ON
- ),
- _uA(
- false,
- MirrorMode.MIRROR_MODE_OFF
- )
-))
-open class CameraView : FrameLayout {
- private var previewView: PreviewView
- open var cameraProvider: ProcessCameraProvider? = null
- open var cameraControl: CameraControl? = null
- private var imageCapture: ImageCapture? = null
- private var videoCapture: VideoCapture? = null
- private var recording: Recording? = null
- private var comp: UTSComponent
- private var flashMode: FlashMode = "auto"
- private var devicePosition: DevicePosition = "back"
- private var resolution: Resolution = "medium"
- private var quality: QualityType = "normal"
- private var videoFile: File? = null
- open var maxZoom: Float = 1.toFloat()
- open var minZoom: Float = 1.toFloat()
- private var initialized: Boolean = false
- private var isListening: Boolean = false
- private var videoSelfieMirror: Boolean? = null
- private var cameraContextStopRecordOption: CameraContextStopRecordOption? = null
- private var onCameraFrameCallback: OnCameraFrameCallback? = null
- private var cameraExecutor: ExecutorService? = null
- private var onCameraFrameListenerOption: OnCameraFrameListenerOption? = null
- constructor(context: Context, comp: UTSComponent, config: CameraConfig = CameraConfig()) : super(context) {
- this.comp = comp
- this.flashMode = config.flash ?: "auto"
- this.devicePosition = config.devicePosition ?: "back"
- this.resolution = config.resolution ?: "medium"
- this.previewView = PreviewView(context)
- var layoutParam = FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)
- this.addView(this.previewView, layoutParam)
- this.setupCamera()
- }
- open fun setupCamera() {
- var cameraProviderFuture = ProcessCameraProvider.getInstance(UTSAndroid.getUniActivity()!!)
- cameraProviderFuture.addListener(fun(){
- try {
- this.cameraProvider = cameraProviderFuture.get()
- this.bindCamera()
- }
- catch (e: Throwable) {
- var ret: Map = Map()
- ret.set("errMsg", JSON.stringify(e))
- this.comp.`$emit`("error", ret)
- }
- }
- , ContextCompat.getMainExecutor(UTSAndroid.getUniActivity()!!))
- }
- open fun bindCamera() {
- var targetResolution = RESOLUTION_MAP.get(this.resolution) ?: Quality.HD
- var captureMode = QUALITY_MAP.get(this.quality) ?: ImageCapture.CAPTURE_MODE_MAXIMIZE_QUALITY
- var preview = Preview.Builder().build()
- preview.setSurfaceProvider(this.previewView.getSurfaceProvider())
- var imageCapture = ImageCapture.Builder().setFlashMode(FLASH_MODE_MAP.get(this.flashMode)!!).setCaptureMode(captureMode).build()
- var cameraSelector = CameraSelector.Builder().requireLensFacing(DEVICE_POSITION_MAP.get(this.devicePosition)!!).build()
- var recorder = Recorder.Builder().setQualitySelector(QualitySelector.from(targetResolution))
- var mirrorMode = if (this.videoSelfieMirror == null) {
- MirrorMode.MIRROR_MODE_ON_FRONT_ONLY
- } else {
- MIRROR_MODE.get(this.videoSelfieMirror!!)
- }
- var videoCapture = VideoCapture.Builder(recorder.build()).setMirrorMode(mirrorMode!!).build()
- this.videoCapture = videoCapture
- this.imageCapture = imageCapture
- this.cameraProvider!!.unbindAll()
- var imageAnalysis = ImageAnalysis.Builder().setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST).build()
- var viewPort = this.previewView.getViewPort()!!
- var useCaseGroup = UseCaseGroup.Builder().addUseCase(preview).addUseCase(imageAnalysis).addUseCase(imageCapture).addUseCase(videoCapture).setViewPort(viewPort).build()
- this.cameraExecutor = Executors.newSingleThreadExecutor()
- var _this = this
- open class Analyzer : ImageAnalysis.Analyzer {
- constructor(){}
- override fun analyze(image: ImageProxy) {
- if (_this.isListening) {
- var imageFormat = image.getFormat()
- var width = image.width
- var height = image.height
- if (imageFormat == ImageFormat.YUV_420_888) {
- _this.onCameraFrameCallback?.invoke(OnCameraFrameCallbackResult(width = width, height = height, data = image))
- _this.onCameraFrameListenerOption?.success?.invoke(OnCameraFrameCallbackResult(width = width, height = height, data = image))
- }
- }
- image.close()
- }
- override fun getDefaultTargetResolution(): Size {
- return Size(640, 480)
- }
- }
- imageAnalysis.setAnalyzer(this.cameraExecutor!!, Analyzer() as ImageAnalysis.Analyzer)
- var camera = this.cameraProvider!!.bindToLifecycle(UTSAndroid.getUniActivity()!! as LifecycleOwner, cameraSelector, useCaseGroup)
- this.cameraControl = camera.getCameraControl()
- if (!this.initialized) {
- this.initialized = true
- var zoomState = camera.getCameraInfo().getZoomState().getValue()
- this.maxZoom = zoomState?.getMaxZoomRatio() ?: 1.toFloat()
- this.minZoom = zoomState?.getMinZoomRatio() ?: 1.toFloat()
- var maxZoom = this.maxZoom
- var ret: Map = Map()
- ret.set("maxZoom", maxZoom)
- this.comp.`$emit`("ready", ret)
- }
- }
- open fun unbindCamera() {
- this.cameraProvider?.unbindAll()
- this.cameraExecutor?.shutdown()
- }
- open fun setConfig(config: CameraConfig = CameraConfig()) {
- this.flashMode = config.flash ?: "auto"
- this.devicePosition = config.devicePosition ?: "back"
- this.resolution = config.resolution ?: "medium"
- }
- open fun setFlash(mode: FlashMode) {
- this.flashMode = mode
- if (FLASH_MODE_MAP.get(mode) == null || this.imageCapture == null) {
- return
- }
- this.imageCapture!!.setFlashMode(FLASH_MODE_MAP.get(mode)!!)
- }
- open fun switchCamera(position: DevicePosition) {
- this.devicePosition = position
- if (DEVICE_POSITION_MAP.get(position) == null || this.cameraProvider == null) {
- return
- }
- this.unbindCamera()
- this.bindCamera()
- }
- open fun isResolutionSupported(context: Context, cameraSelector: CameraSelector, targetResolution: Size): Boolean {
- return true
- }
- open fun takePhoto(option: TakePhotoOption) {
- var quality = option.quality ?: "high"
- this.quality = quality
- if (quality == "low") {
- this.unbindCamera()
- this.bindCamera()
- }
- var privateDir = UTSAndroid.getAppCachePath()!!
- val tempFile = File(privateDir)
- if (!tempFile.exists()) {
- tempFile.mkdirs()
- }
- val photoFile = File(privateDir, Date.now() + ".png")
- var metadata = ImageCapture.Metadata()
- metadata.setReversedHorizontal(option.selfieMirror ?: DEVICE_POSITION_MAP.get(this.devicePosition)!! == CameraSelector.LENS_FACING_FRONT)
- val outputOptions = ImageCapture.OutputFileOptions.Builder(photoFile).setMetadata(metadata).build()
- open class OnImageSavedCallback : ImageCapture.OnImageSavedCallback {
- override fun onImageSaved(outputFileResults: ImageCapture.OutputFileResults) {
- option.success?.invoke(TakePhotoSuccessCallbackResult(tempImagePath = photoFile.getAbsolutePath(), quality = quality, errMsg = "ok"))
- option.complete?.invoke(GeneralCallbackResult(errMsg = "ok"))
- }
- override fun onError(err: ImageCaptureException) {
- val result = GeneralCallbackResult(errMsg = err.toString())
- option.fail?.invoke(result)
- option.complete?.invoke(result)
- }
- override fun onCaptureStarted() {}
- }
- this.imageCapture!!.takePicture(outputOptions, ContextCompat.getMainExecutor(UTSAndroid.getUniActivity()!!), OnImageSavedCallback() as ImageCapture.OnImageSavedCallback)
- }
- open fun setZoom(option: CameraContextSetZoomOption) {
- if (this.cameraControl != null) {
- try {
- this.cameraControl!!.setZoomRatio(option.zoom.toFloat())
- option.success?.invoke(SetZoomSuccessCallbackResult(zoom = option.zoom, errMsg = "ok"))
- option.complete?.invoke(GeneralCallbackResult(errMsg = "ok"))
- } catch (e: Throwable) {
- val result = GeneralCallbackResult(errMsg = e.toString())
- option.complete?.invoke(result)
- option.fail?.invoke(result)
- }
- } else {
- val result = GeneralCallbackResult(errMsg = "相机不存在")
- option.complete?.invoke(result)
- option.fail?.invoke(result)
- }
- }
- open fun startRecord(option: CameraContextStartRecordOption) {
- if (option.selfieMirror != null && this.videoSelfieMirror != option.selfieMirror) {
- this.videoSelfieMirror = option.selfieMirror
- this.unbindCamera()
- this.bindCamera()
- }
- if (this.recording != null || this.videoCapture == null) {
- option.fail?.invoke(GeneralCallbackResult(errMsg = "已经在录制或相机不存在"))
- option.complete?.invoke(GeneralCallbackResult(errMsg = "已经在录制或相机不存在"))
- return
- }
- var privateDir = UTSAndroid.getAppCachePath()!!
- this.videoFile = File(privateDir, Date.now() + "video.mp4")
- var outputFileOptions = FileOutputOptions.Builder(this.videoFile!!).build()
- this.recording = this.videoCapture!!.output.prepareRecording(UTSAndroid.getUniActivity()!!, outputFileOptions).withAudioEnabled().start(ContextCompat.getMainExecutor(UTSAndroid.getUniActivity()!!), fun(recordEvent: VideoRecordEvent){
- if (recordEvent is VideoRecordEvent.Start) {
- option.success?.invoke(GeneralCallbackResult(errMsg = "ok"))
- if (option.timeout != null && option.timeout!! > 0) {
- setTimeout(fun(){
- this.recording?.stop()
- }
- , option.timeout!!)
- }
- } else if (recordEvent is VideoRecordEvent.Finalize) {
- this.recording?.close()
- this.recording = null
- var tempVideoPath = this.videoFile?.getAbsolutePath()!!
- this.cameraContextStopRecordOption?.success?.invoke(StopRecordSuccessCallbackResult(tempVideoPath = tempVideoPath, errMsg = "ok"))
- option.timeoutCallback?.invoke(StartRecordTimeoutCallbackResult(tempVideoPath = tempVideoPath))
- }
- }
- )
- }
- open fun stopRecord(option: CameraContextStopRecordOption) {
- if (this.recording == null) {
- option.fail?.invoke(GeneralCallbackResult(errMsg = "未开始录制"))
- option.complete?.invoke(GeneralCallbackResult(errMsg = "未开始录制"))
- return
- }
- this.cameraContextStopRecordOption = option
- this.recording?.stop()
- }
- open fun onCameraFrame(callback: OnCameraFrameCallback? = null) {
- this.onCameraFrameCallback = callback
- }
- open fun onCameraFrameListener(option: OnCameraFrameListenerOption) {
- this.onCameraFrameListenerOption = option
- }
- open fun cameraFrameOnStart(option: CameraFrameListenerStartOption?) {
- this.isListening = true
- option?.success?.invoke(GeneralCallbackResult(errMsg = "ok"))
- }
- open fun cameraFrameOnStop(option: StopOption?) {
- this.isListening = false
- option?.success?.invoke(GeneralCallbackResult(errMsg = "ok"))
- }
-}
-open class CameraManager {
- private var cameraView: CameraView? = null
- public open fun setCameraView(cameraView: CameraView?): Unit {
- this.cameraView = cameraView!!
- }
- public open fun getCameraView(): CameraView? {
- return this.cameraView
- }
- public open fun dispose(): Unit {
- this.cameraView = null
- }
- companion object {
- private var instance: CameraManager? = null
- public fun getInstance(): CameraManager {
- if (CameraManager.instance == null) {
- CameraManager.instance = CameraManager()
- }
- return CameraManager.instance!!
- }
- }
-}
-open class XfCameraComponent : UTSComponent {
- constructor(proxy: PageProxy, componentData: IComponentData) : super(proxy, componentData)
- open var mode: String = "normal"
- open var resolution: String = "medium"
- open var position: String = "back"
- open var flash: String = "auto"
- open var frameSize: String = "medium"
- override fun created() {}
- override fun NVBeforeLoad() {}
- override fun NVLoad(): CameraView {
- var previewView = CameraView(this.`$androidContext`!!, this)
- previewView.setTag("9527")
- CameraManager.getInstance().setCameraView(previewView)
- return previewView
- }
- override fun NVLoaded() {}
- override fun NVLayouted() {
- this.`$el`?.setConfig(CameraConfig(resolution = this.resolution, frameSize = this.frameSize, flash = this.flash))
- this.`$el`?.switchCamera(this.position)
- }
- override fun NVBeforeUnload() {
- var ret: Map = Map()
- this.`$emit`("stop", ret)
- this.`$el`?.unbindCamera()
- }
- override fun NVUnloaded() {
- CameraManager.getInstance().dispose()
- }
- override fun unmounted() {}
- override fun `$init`() {
- this.`$watch`("position", fun(newValue, _){
- this.`$el`?.switchCamera(newValue)
- }
- )
- this.`$watch`("flash", fun(newValue, _){
- this.`$el`?.setFlash(newValue)
- }
- )
- }
- companion object {
- var name = "xf-camera"
- init {
- io.dcloud.uniapp.UniSDKEngine.registerUniComponent("xf-camera", XfCameraComponent::class.java, XfCameraElement::class.java)
- }
- }
-}
-open class XfCameraElement : DomNode {
- constructor(data: INodeData, pageNode: PageNode) : super(data, pageNode)
-}
-open class CameraFrameListener {
- open lateinit var context: CameraContext
- constructor(context: CameraContext){
- this.context = context
- }
- open fun start(): Unit {
- this.start(null)
- }
- open fun start(option: CameraFrameListenerStartOption?) {
- this.context.getCamera().then(fun(camera: CameraView){
- camera.cameraFrameOnStart(option)
- }
- )
- }
- open fun stop(): Unit {
- this.stop(null)
- }
- open fun stop(option: StopOption?) {
- this.context.getCamera().then(fun(camera: CameraView){
- camera.cameraFrameOnStop(option)
- }
- )
- }
-}
-open class CameraContext {
- private var mCameraFrameListener: CameraFrameListener? = null
- constructor(){}
- open fun getCamera(): UTSPromise {
- var cameraPreview = CameraManager.getInstance().getCameraView()
- if (cameraPreview != null) {
- return UTSPromise.resolve(cameraPreview)
- }
- var resolveFunc: ((res: CameraView) -> Unit)? = null
- var rejectFunc: ((res: String) -> Unit)? = null
- var maxAttempts: Number = 5
- var currentAttempt: Number = 0
- fun attemptGetCamera() {
- var camera = CameraManager.getInstance().getCameraView()
- if (camera != null) {
- resolveFunc?.invoke(camera)
- } else if (currentAttempt < maxAttempts) {
- currentAttempt++
- setTimeout(fun(){
- attemptGetCamera()
- }, 100)
- } else {
- rejectFunc?.invoke("Camera not found after multiple attempts")
- }
- }
- return UTSPromise(fun(resolve, reject){
- resolveFunc = resolve
- rejectFunc = reject
- attemptGetCamera()
- }
- )
- }
- open fun takePhoto(option: TakePhotoOption) {
- this.getCamera().then(fun(camera: CameraView){
- camera.takePhoto(option)
- }
- ).`catch`(fun(){
- option.fail?.invoke(GeneralCallbackResult(errMsg = "未找到相机"))
- option.complete?.invoke(GeneralCallbackResult(errMsg = "未找到相机"))
- }
- )
- }
- open fun setZoom(option: CameraContextSetZoomOption) {
- this.getCamera().then(fun(camera: CameraView){
- camera.setZoom(option)
- }
- ).`catch`(fun(){
- option.fail?.invoke(GeneralCallbackResult(errMsg = "未找到相机"))
- option.complete?.invoke(GeneralCallbackResult(errMsg = "未找到相机"))
- }
- )
- }
- open fun startRecord(option: CameraContextStartRecordOption) {
- this.getCamera().then(fun(camera: CameraView){
- camera.startRecord(option)
- }
- ).`catch`(fun(){
- option.fail?.invoke(GeneralCallbackResult(errMsg = "未找到相机"))
- option.complete?.invoke(GeneralCallbackResult(errMsg = "未找到相机"))
- }
- )
- }
- open fun stopRecord(option: CameraContextStopRecordOption) {
- this.getCamera().then(fun(camera: CameraView){
- camera.stopRecord(option)
- }
- ).`catch`(fun(){
- option.fail?.invoke(GeneralCallbackResult(errMsg = "未找到相机"))
- option.complete?.invoke(GeneralCallbackResult(errMsg = "未找到相机"))
- }
- )
- }
- open fun onCameraFrame(): CameraFrameListener {
- return this.onCameraFrame(null)
- }
- open fun onCameraFrame(callback: OnCameraFrameCallback? = null): CameraFrameListener {
- if (this.mCameraFrameListener == null) {
- this.mCameraFrameListener = CameraFrameListener(this)
- }
- this.getCamera().then(fun(camera: CameraView){
- camera.onCameraFrame(callback)
- }
- )
- return this.mCameraFrameListener!!
- }
- open fun onCameraFrameListener(option: OnCameraFrameListenerOption) {
- this.getCamera().then(fun(camera: CameraView){
- camera.onCameraFrameListener(option)
- }
- ).`catch`(fun(){
- console.log("未找到相机")
- }
- )
- }
- open fun cameraFrameOnStart(option: CameraFrameListenerStartOption) {
- this.getCamera().then(fun(camera: CameraView){
- camera.cameraFrameOnStart(option)
- }
- ).`catch`(fun(){
- option.fail?.invoke(GeneralCallbackResult(errMsg = "未找到相机"))
- option.complete?.invoke(GeneralCallbackResult(errMsg = "未找到相机"))
- }
- )
- }
- open fun cameraFrameOnStop(option: StopOption) {
- this.getCamera().then(fun(camera: CameraView){
- camera.cameraFrameOnStop(option)
- }
- ).`catch`(fun(){
- option.fail?.invoke(GeneralCallbackResult(errMsg = "未找到相机"))
- option.complete?.invoke(GeneralCallbackResult(errMsg = "未找到相机"))
- }
- )
- }
- open fun switchCamera(option: SwitchOption) {
- this.getCamera().then(fun(camera: CameraView){
- camera.switchCamera(option.position)
- option.success?.invoke(GeneralCallbackResult(errMsg = "ok"))
- option.complete?.invoke(GeneralCallbackResult(errMsg = "ok"))
- }
- ).`catch`(fun(){
- option.fail?.invoke(GeneralCallbackResult(errMsg = "未找到相机"))
- option.complete?.invoke(GeneralCallbackResult(errMsg = "未找到相机"))
- }
- )
- }
-}
-var context: CameraContext = CameraContext()
-fun createCameraContext(): CameraContext {
- return context
-}
-val takePhoto: TakePhoto = fun(options: TakePhotoOption) {
- UTSAndroid.getDispatcher("main").async(fun(_) {
- context.takePhoto(options)
- }
- , null)
-}
-val setZoom: SetZoom = fun(options: CameraContextSetZoomOption) {
- UTSAndroid.getDispatcher("main").async(fun(_) {
- context.setZoom(options)
- }
- , null)
-}
-val startRecord: StartRecord = fun(options: CameraContextStartRecordOption) {
- UTSAndroid.getDispatcher("main").async(fun(_) {
- context.startRecord(options)
- }
- , null)
-}
-val stopRecord: StopRecord = fun(options: CameraContextStopRecordOption) {
- UTSAndroid.getDispatcher("main").async(fun(_) {
- context.stopRecord(options)
- }
- , null)
-}
-fun onCameraFrameListener(options: OnCameraFrameListenerOption) {
- UTSAndroid.getDispatcher("main").async(fun(_) {
- context.onCameraFrameListener(options)
- }
- , null)
-}
-val startCameraFrame: StartCameraFrame = fun(options: CameraFrameListenerStartOption) {
- UTSAndroid.getDispatcher("main").async(fun(_) {
- context.cameraFrameOnStart(options)
- }
- , null)
-}
-val stopCameraFrame: StopCameraFrame = fun(options: StopOption) {
- UTSAndroid.getDispatcher("main").async(fun(_) {
- context.cameraFrameOnStop(options)
- }
- , null)
-}
-val switchCamera: SwitchCamera = fun(options: SwitchOption) {
- UTSAndroid.getDispatcher("main").async(fun(_) {
- context.switchCamera(options)
- }
- , null)
-}
diff --git a/unpackage/dist/build/app-ios/app-config.js b/unpackage/dist/build/app-ios/app-config.js
deleted file mode 100644
index 0720277..0000000
--- a/unpackage/dist/build/app-ios/app-config.js
+++ /dev/null
@@ -1,5 +0,0 @@
-const __uniConfig = {"pages":[],"globalStyle":{"navigationBarTextStyle":"black","navigationBarTitleText":"uni-app x","navigationBarBackgroundColor":"#F8F8F8","backgroundColor":"#F8F8F8"},"appname":"SkinCamera","compilerVersion":"4.87","entryPagePath":"pages/index/index","entryPageQuery":"","realEntryPagePath":"","themeConfig":{}};
-__uniConfig.getTabBarConfig = () => {return undefined};
-__uniConfig.tabBar = __uniConfig.getTabBarConfig();
-const __uniRoutes = [{"path":"pages/index/index","meta":{"isQuit":true,"isEntry":true,"navigationBarTitleText":"uni-app x"}}].map(uniRoute=>(uniRoute.meta.route=uniRoute.path,__uniConfig.pages.push(uniRoute.path),uniRoute.path='/'+uniRoute.path,uniRoute)).concat(typeof __uniSystemRoutes !== 'undefined' ? __uniSystemRoutes : []);
-
diff --git a/unpackage/dist/build/app-ios/app-service.js b/unpackage/dist/build/app-ios/app-service.js
deleted file mode 100644
index 5e4ef1c..0000000
--- a/unpackage/dist/build/app-ios/app-service.js
+++ /dev/null
@@ -1,103 +0,0 @@
-(function(vue) {
- "use strict";
- const { registerUTSInterface, initUTSProxyClass, initUTSProxyFunction, initUTSPackageName, initUTSIndexClassName, initUTSClassName } = uni;
- const name = "SkinCameraUTS";
- const moduleName = "UTS实现自定义相机拍照和录像功能";
- const moduleType = "";
- const errMsg = "";
- const is_uni_modules = true;
- const pkg = /* @__PURE__ */ initUTSPackageName(name, is_uni_modules);
- const cls = /* @__PURE__ */ initUTSIndexClassName(name, is_uni_modules);
- const XfCameraComponent = {};
- const takePhoto = /* @__PURE__ */ initUTSProxyFunction(false, { moduleName, moduleType, errMsg, main: true, package: pkg, class: cls, name: "takePhotoByJs", keepAlive: false, params: [{ "name": "options", "type": "UTSSDKModulesSkinCameraUTSTakePhotoOptionJSONObject" }], return: "" });
- function resolveEasycom(component, easycom) {
- return typeof component === "string" ? easycom : component;
- }
- const _sfc_main$1 = vue.defineComponent({
- data() {
- return {
- yanse: "red",
- widthNum: 750,
- heightNum: 200,
- flash: "on",
- device: "front",
- imagePath: "",
- videoPath: "https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/2minute-demo.mp4"
- };
- },
- onLoad() {
- },
- methods: {
- onError(res = null) {
- uni.__log__("log", "at pages/index/index.uvue:54", res);
- },
- _takePhoto() {
- takePhoto({
- success: (res = null) => {
- uni.__log__("log", "at pages/index/index.uvue:59", "takePhoto", res);
- this.imagePath = res.tempImagePath;
- },
- fail: (res = null) => {
- uni.__log__("log", "at pages/index/index.uvue:64", "takePhoto", res);
- }
- });
- }
- }
- });
- const _style_0$1 = { "video": { "": { "width": "100%", "height": 200 } } };
- const _export_sfc = (sfc, props) => {
- const target = sfc.__vccOpts || sfc;
- for (const [key, val] of props) {
- target[key] = val;
- }
- return target;
- };
- function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
- resolveEasycom(vue.resolveDynamicComponent("xf-camera"), XfCameraComponent);
- return vue.openBlock(), vue.createElementBlock("scroll-view", { class: "page-scroll-view" }, [
- vue.createElementVNode("view", null, [
- vue.createElementVNode("button", {
- onClick: _cache[0] || (_cache[0] = (...args) => $options._takePhoto && $options._takePhoto(...args))
- }, "拍照"),
- vue.createElementVNode("xf-camera", {
- style: { "height": "750rpx", "background-color": "red" },
- onError: _cache[1] || (_cache[1] = (...args) => $options.onError && $options.onError(...args)),
- flash: $data.flash,
- position: $data.device
- }, null, 40, ["flash", "position"]),
- $data.imagePath ? (vue.openBlock(), vue.createElementBlock("image", {
- key: 0,
- mode: "aspectFit",
- src: $data.imagePath
- }, null, 8, ["src"])) : vue.createCommentVNode("", true)
- ])
- ]);
- }
- const PagesIndexIndex = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render], ["styles", [_style_0$1]]]);
- __definePage("pages/index/index", PagesIndexIndex);
- const _sfc_main = vue.defineComponent({
- onLaunch() {
- uni.__log__("log", "at App.uvue:7", "App Launch");
- },
- onShow() {
- uni.__log__("log", "at App.uvue:10", "App Show");
- },
- onHide() {
- uni.__log__("log", "at App.uvue:13", "App Hide");
- },
- onExit() {
- uni.__log__("log", "at App.uvue:34", "App Exit");
- }
- });
- const _style_0 = { "uni-row": { "": { "flexDirection": "row" } }, "uni-column": { "": { "flexDirection": "column" } } };
- const App = /* @__PURE__ */ _export_sfc(_sfc_main, [["styles", [_style_0]]]);
- const __global__ = typeof globalThis === "undefined" ? Function("return this")() : globalThis;
- __global__.__uniX = true;
- function createApp() {
- const app = vue.createSSRApp(App);
- return {
- app
- };
- }
- createApp().app.mount("#app");
-})(Vue);
diff --git a/unpackage/dist/build/app-ios/manifest.json b/unpackage/dist/build/app-ios/manifest.json
deleted file mode 100644
index 1c0c41b..0000000
--- a/unpackage/dist/build/app-ios/manifest.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "id": "__UNI__644401D",
- "name": "SkinCamera",
- "description": "",
- "version": {
- "name": "1.0.0",
- "code": "100"
- },
- "uni-app-x": {
- "compilerVersion": "4.87"
- },
- "app-ios": {
- "distribute": {
- "modules": {},
- "icons": {},
- "splashScreens": {},
- "privacyDescription": {
- "NSPhotoLibraryUsageDescription": "读取相册",
- "NSPhotoLibraryAddUsageDescription": "写入相册",
- "NSCameraUsageDescription": "要摄像头",
- "NSMicrophoneUsageDescription": "要麦克风",
- "NSLocationWhenInUseUsageDescription": "要访问",
- "NSLocationAlwaysUsageDescription": "要访问",
- "NSLocationAlwaysAndWhenInUseUsageDescription": "要访问"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/unpackage/dist/build/app-ios/static/logo.png b/unpackage/dist/build/app-ios/static/logo.png
deleted file mode 100644
index b5771e2..0000000
Binary files a/unpackage/dist/build/app-ios/static/logo.png and /dev/null differ
diff --git a/unpackage/dist/build/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/config.json b/unpackage/dist/build/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/config.json
deleted file mode 100644
index 9ce9939..0000000
--- a/unpackage/dist/build/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/config.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "deploymentTarget": "11",
- "components": [
- {
- "name": "xf-camera",
- "class": "UTSSDKModulesSkinCameraUTSXfCameraComponent",
- "delegateClass": "XfCameraComponentRegister"
- }
- ]
-}
\ No newline at end of file
diff --git a/unpackage/dist/build/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/src/index.swift b/unpackage/dist/build/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/src/index.swift
deleted file mode 100644
index 38bd971..0000000
--- a/unpackage/dist/build/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/src/index.swift
+++ /dev/null
@@ -1,1407 +0,0 @@
-import AVFoundation
-import CoreMedia
-import CoreVideo
-import DCloudUTSFoundation
-import DCloudUniappRuntime
-import Dispatch
-import Foundation
-import UIKit
-@objc(UTSSDKModulesSkinCameraUTSGeneralCallbackResult)
-@objcMembers
-public class GeneralCallbackResult : NSObject, UTSObject {
- public var errMsg: String!
- public subscript(_ key: String) -> Any? {
- get {
- return utsSubscriptGetValue(key)
- }
- set {
- switch(key){
- case "errMsg":
- self.errMsg = try! utsSubscriptCheckValue(newValue)
- default:
- break
- }
- }
- }
- public override init() {
- super.init()
- }
- public init(_ obj: UTSJSONObject) {
- self.errMsg = obj["errMsg"] as! String
- }
-}
-@objc(UTSSDKModulesSkinCameraUTSTakePhotoSuccessCallbackResult)
-@objcMembers
-public class TakePhotoSuccessCallbackResult : NSObject, UTSObject {
- public var tempImagePath: String!
- public var quality: String!
- public var errMsg: String!
- public subscript(_ key: String) -> Any? {
- get {
- return utsSubscriptGetValue(key)
- }
- set {
- switch(key){
- case "tempImagePath":
- self.tempImagePath = try! utsSubscriptCheckValue(newValue)
- case "quality":
- self.quality = try! utsSubscriptCheckValue(newValue)
- case "errMsg":
- self.errMsg = try! utsSubscriptCheckValue(newValue)
- default:
- break
- }
- }
- }
- public override init() {
- super.init()
- }
- public init(_ obj: UTSJSONObject) {
- self.tempImagePath = obj["tempImagePath"] as! String
- self.quality = obj["quality"] as! String
- self.errMsg = obj["errMsg"] as! String
- }
-}
-public typealias TakePhotoFailCallback = (_ res: GeneralCallbackResult) -> Void
-public typealias TakePhotoSuccessCallback = (_ result: TakePhotoSuccessCallbackResult) -> Void
-public typealias TakePhotoCompleteCallback = (_ res: GeneralCallbackResult) -> Void
-@objc(UTSSDKModulesSkinCameraUTSTakePhotoOption)
-@objcMembers
-public class TakePhotoOption : NSObject, UTSObject {
- public var complete: TakePhotoCompleteCallback?
- public var fail: TakePhotoFailCallback?
- public var quality: String?
- public var selfieMirror: Bool = false
- public var success: TakePhotoSuccessCallback?
- public subscript(_ key: String) -> Any? {
- get {
- return utsSubscriptGetValue(key)
- }
- set {
- switch(key){
- case "complete":
- self.complete = try! utsSubscriptCheckValueIfPresent(newValue)
- case "fail":
- self.fail = try! utsSubscriptCheckValueIfPresent(newValue)
- case "quality":
- self.quality = try! utsSubscriptCheckValueIfPresent(newValue)
- case "selfieMirror":
- self.selfieMirror = try! utsSubscriptCheckValue(newValue)
- case "success":
- self.success = try! utsSubscriptCheckValueIfPresent(newValue)
- default:
- break
- }
- }
- }
- public override init() {
- super.init()
- }
- public init(_ obj: UTSJSONObject) {
- self.complete = obj["complete"] as! TakePhotoCompleteCallback?
- self.fail = obj["fail"] as! TakePhotoFailCallback?
- self.quality = obj["quality"] as! String?
- self.selfieMirror = (obj["selfieMirror"] as? Bool) ?? false
- self.success = obj["success"] as! TakePhotoSuccessCallback?
- }
-}
-@objc(UTSSDKModulesSkinCameraUTSSetZoomSuccessCallbackResult)
-@objcMembers
-public class SetZoomSuccessCallbackResult : NSObject, UTSObject {
- public var zoom: NSNumber!
- public var errMsg: String!
- public subscript(_ key: String) -> Any? {
- get {
- return utsSubscriptGetValue(key)
- }
- set {
- switch(key){
- case "zoom":
- self.zoom = try! utsSubscriptCheckValue(newValue)
- case "errMsg":
- self.errMsg = try! utsSubscriptCheckValue(newValue)
- default:
- break
- }
- }
- }
- public override init() {
- super.init()
- }
- public init(_ obj: UTSJSONObject) {
- self.zoom = obj["zoom"] as! NSNumber
- self.errMsg = obj["errMsg"] as! String
- }
-}
-public typealias SetZoomCompleteCallback = (_ res: GeneralCallbackResult) -> Void
-public typealias SetZoomFailCallback = (_ res: GeneralCallbackResult) -> Void
-public typealias CameraContextSetZoomSuccessCallback = (_ result: SetZoomSuccessCallbackResult) -> Void
-@objc(UTSSDKModulesSkinCameraUTSCameraContextSetZoomOption)
-@objcMembers
-public class CameraContextSetZoomOption : NSObject, UTSObject {
- public var zoom: NSNumber!
- public var complete: SetZoomCompleteCallback?
- public var fail: SetZoomFailCallback?
- public var success: CameraContextSetZoomSuccessCallback?
- public subscript(_ key: String) -> Any? {
- get {
- return utsSubscriptGetValue(key)
- }
- set {
- switch(key){
- case "zoom":
- self.zoom = try! utsSubscriptCheckValue(newValue)
- case "complete":
- self.complete = try! utsSubscriptCheckValueIfPresent(newValue)
- case "fail":
- self.fail = try! utsSubscriptCheckValueIfPresent(newValue)
- case "success":
- self.success = try! utsSubscriptCheckValueIfPresent(newValue)
- default:
- break
- }
- }
- }
- public override init() {
- super.init()
- }
- public init(_ obj: UTSJSONObject) {
- self.zoom = obj["zoom"] as! NSNumber
- self.complete = obj["complete"] as! SetZoomCompleteCallback?
- self.fail = obj["fail"] as! SetZoomFailCallback?
- self.success = obj["success"] as! CameraContextSetZoomSuccessCallback?
- }
-}
-@objc(UTSSDKModulesSkinCameraUTSStartRecordTimeoutCallbackResult)
-@objcMembers
-public class StartRecordTimeoutCallbackResult : NSObject, UTSObject {
- public var tempVideoPath: String!
- public subscript(_ key: String) -> Any? {
- get {
- return utsSubscriptGetValue(key)
- }
- set {
- switch(key){
- case "tempVideoPath":
- self.tempVideoPath = try! utsSubscriptCheckValue(newValue)
- default:
- break
- }
- }
- }
- public override init() {
- super.init()
- }
- public init(_ obj: UTSJSONObject) {
- self.tempVideoPath = obj["tempVideoPath"] as! String
- }
-}
-public typealias StartRecordCompleteCallback = (_ res: GeneralCallbackResult) -> Void
-public typealias StartRecordFailCallback = (_ res: GeneralCallbackResult) -> Void
-public typealias StartRecordTimeoutCallback = (_ result: StartRecordTimeoutCallbackResult) -> Void
-public typealias CameraContextStartRecordSuccessCallback = (_ res: GeneralCallbackResult) -> Void
-@objc(UTSSDKModulesSkinCameraUTSCameraContextStartRecordOption)
-@objcMembers
-public class CameraContextStartRecordOption : NSObject, UTSObject {
- public var complete: StartRecordCompleteCallback?
- public var fail: StartRecordFailCallback?
- public var selfieMirror: Bool = false
- public var success: CameraContextStartRecordSuccessCallback?
- public var timeout: NSNumber?
- public var timeoutCallback: StartRecordTimeoutCallback?
- public subscript(_ key: String) -> Any? {
- get {
- return utsSubscriptGetValue(key)
- }
- set {
- switch(key){
- case "complete":
- self.complete = try! utsSubscriptCheckValueIfPresent(newValue)
- case "fail":
- self.fail = try! utsSubscriptCheckValueIfPresent(newValue)
- case "selfieMirror":
- self.selfieMirror = try! utsSubscriptCheckValue(newValue)
- case "success":
- self.success = try! utsSubscriptCheckValueIfPresent(newValue)
- case "timeout":
- self.timeout = try! utsSubscriptCheckValueIfPresent(newValue)
- case "timeoutCallback":
- self.timeoutCallback = try! utsSubscriptCheckValueIfPresent(newValue)
- default:
- break
- }
- }
- }
- public override init() {
- super.init()
- }
- public init(_ obj: UTSJSONObject) {
- self.complete = obj["complete"] as! StartRecordCompleteCallback?
- self.fail = obj["fail"] as! StartRecordFailCallback?
- self.selfieMirror = (obj["selfieMirror"] as? Bool) ?? false
- self.success = obj["success"] as! CameraContextStartRecordSuccessCallback?
- self.timeout = obj["timeout"] as! NSNumber?
- self.timeoutCallback = obj["timeoutCallback"] as! StartRecordTimeoutCallback?
- }
-}
-@objc(UTSSDKModulesSkinCameraUTSStopRecordSuccessCallbackResult)
-@objcMembers
-public class StopRecordSuccessCallbackResult : NSObject, UTSObject {
- public var tempVideoPath: String!
- public var errMsg: String!
- public subscript(_ key: String) -> Any? {
- get {
- return utsSubscriptGetValue(key)
- }
- set {
- switch(key){
- case "tempVideoPath":
- self.tempVideoPath = try! utsSubscriptCheckValue(newValue)
- case "errMsg":
- self.errMsg = try! utsSubscriptCheckValue(newValue)
- default:
- break
- }
- }
- }
- public override init() {
- super.init()
- }
- public init(_ obj: UTSJSONObject) {
- self.tempVideoPath = obj["tempVideoPath"] as! String
- self.errMsg = obj["errMsg"] as! String
- }
-}
-public typealias StopRecordCompleteCallback = (_ res: GeneralCallbackResult) -> Void
-public typealias StopRecordFailCallback = (_ res: GeneralCallbackResult) -> Void
-public typealias CameraContextStopRecordSuccessCallback = (_ result: StopRecordSuccessCallbackResult) -> Void
-@objc(UTSSDKModulesSkinCameraUTSCameraContextStopRecordOption)
-@objcMembers
-public class CameraContextStopRecordOption : NSObject, UTSObject {
- public var complete: StopRecordCompleteCallback?
- public var compressed: Bool = false
- public var fail: StopRecordFailCallback?
- public var success: CameraContextStopRecordSuccessCallback?
- public subscript(_ key: String) -> Any? {
- get {
- return utsSubscriptGetValue(key)
- }
- set {
- switch(key){
- case "complete":
- self.complete = try! utsSubscriptCheckValueIfPresent(newValue)
- case "compressed":
- self.compressed = try! utsSubscriptCheckValue(newValue)
- case "fail":
- self.fail = try! utsSubscriptCheckValueIfPresent(newValue)
- case "success":
- self.success = try! utsSubscriptCheckValueIfPresent(newValue)
- default:
- break
- }
- }
- }
- public override init() {
- super.init()
- }
- public init(_ obj: UTSJSONObject) {
- self.complete = obj["complete"] as! StopRecordCompleteCallback?
- self.compressed = (obj["compressed"] as? Bool) ?? false
- self.fail = obj["fail"] as! StopRecordFailCallback?
- self.success = obj["success"] as! CameraContextStopRecordSuccessCallback?
- }
-}
-public typealias OnCameraFrameCallback = (_ result: OnCameraFrameCallbackResult) -> Void
-@objc(UTSSDKModulesSkinCameraUTSOnCameraFrameCallbackResult)
-@objcMembers
-public class OnCameraFrameCallbackResult : NSObject, UTSObject {
- public var data: Any!
- public var height: NSNumber!
- public var width: NSNumber!
- public subscript(_ key: String) -> Any? {
- get {
- return utsSubscriptGetValue(key)
- }
- set {
- switch(key){
- case "data":
- self.data = try! utsSubscriptCheckValue(newValue)
- case "height":
- self.height = try! utsSubscriptCheckValue(newValue)
- case "width":
- self.width = try! utsSubscriptCheckValue(newValue)
- default:
- break
- }
- }
- }
- public override init() {
- super.init()
- }
- public init(_ obj: UTSJSONObject) {
- self.data = obj["data"] as! Any
- self.height = obj["height"] as! NSNumber
- self.width = obj["width"] as! NSNumber
- }
-}
-public typealias StartSuccessCallback = (_ res: GeneralCallbackResult) -> Void
-public typealias StartFailCallback = (_ res: GeneralCallbackResult) -> Void
-public typealias StartCompleteCallback = (_ res: GeneralCallbackResult) -> Void
-@objc(UTSSDKModulesSkinCameraUTSCameraFrameListenerStartOption)
-@objcMembers
-public class CameraFrameListenerStartOption : NSObject, UTSObject {
- public var complete: StartCompleteCallback?
- public var fail: StartFailCallback?
- public var success: StartSuccessCallback?
- public subscript(_ key: String) -> Any? {
- get {
- return utsSubscriptGetValue(key)
- }
- set {
- switch(key){
- case "complete":
- self.complete = try! utsSubscriptCheckValueIfPresent(newValue)
- case "fail":
- self.fail = try! utsSubscriptCheckValueIfPresent(newValue)
- case "success":
- self.success = try! utsSubscriptCheckValueIfPresent(newValue)
- default:
- break
- }
- }
- }
- public override init() {
- super.init()
- }
- public init(_ obj: UTSJSONObject) {
- self.complete = obj["complete"] as! StartCompleteCallback?
- self.fail = obj["fail"] as! StartFailCallback?
- self.success = obj["success"] as! StartSuccessCallback?
- }
-}
-public typealias StopCompleteCallback = (_ res: GeneralCallbackResult) -> Void
-public typealias StopFailCallback = (_ res: GeneralCallbackResult) -> Void
-public typealias StopSuccessCallback = (_ res: GeneralCallbackResult) -> Void
-@objc(UTSSDKModulesSkinCameraUTSStopOption)
-@objcMembers
-public class StopOption : NSObject, UTSObject {
- public var complete: StopCompleteCallback?
- public var fail: StopFailCallback?
- public var success: StopSuccessCallback?
- public subscript(_ key: String) -> Any? {
- get {
- return utsSubscriptGetValue(key)
- }
- set {
- switch(key){
- case "complete":
- self.complete = try! utsSubscriptCheckValueIfPresent(newValue)
- case "fail":
- self.fail = try! utsSubscriptCheckValueIfPresent(newValue)
- case "success":
- self.success = try! utsSubscriptCheckValueIfPresent(newValue)
- default:
- break
- }
- }
- }
- public override init() {
- super.init()
- }
- public init(_ obj: UTSJSONObject) {
- self.complete = obj["complete"] as! StopCompleteCallback?
- self.fail = obj["fail"] as! StopFailCallback?
- self.success = obj["success"] as! StopSuccessCallback?
- }
-}
-public typealias FlashMode = String
-public typealias DevicePosition = String
-public typealias Resolution = String
-public typealias FrameSize = String
-@objc(UTSSDKModulesSkinCameraUTSCameraConfig)
-@objcMembers
-public class CameraConfig : NSObject, UTSObject {
- public var flash: FlashMode?
- public var devicePosition: DevicePosition?
- public var resolution: Resolution?
- public var frameSize: FrameSize?
- public subscript(_ key: String) -> Any? {
- get {
- return utsSubscriptGetValue(key)
- }
- set {
- switch(key){
- case "flash":
- self.flash = try! utsSubscriptCheckValueIfPresent(newValue)
- case "devicePosition":
- self.devicePosition = try! utsSubscriptCheckValueIfPresent(newValue)
- case "resolution":
- self.resolution = try! utsSubscriptCheckValueIfPresent(newValue)
- case "frameSize":
- self.frameSize = try! utsSubscriptCheckValueIfPresent(newValue)
- default:
- break
- }
- }
- }
- public override init() {
- super.init()
- }
- public init(_ obj: UTSJSONObject) {
- self.flash = obj["flash"] as! FlashMode?
- self.devicePosition = obj["devicePosition"] as! DevicePosition?
- self.resolution = obj["resolution"] as! Resolution?
- self.frameSize = obj["frameSize"] as! FrameSize?
- }
-}
-public typealias SwitchCompleteCallback = (_ res: GeneralCallbackResult) -> Void
-public typealias SwitchFailCallback = (_ res: GeneralCallbackResult) -> Void
-public typealias SwitchSuccessCallback = (_ res: GeneralCallbackResult) -> Void
-@objc(UTSSDKModulesSkinCameraUTSSwitchOption)
-@objcMembers
-public class SwitchOption : NSObject, UTSObject {
- public var position: DevicePosition!
- public var complete: SwitchCompleteCallback?
- public var fail: SwitchFailCallback?
- public var success: SwitchSuccessCallback?
- public subscript(_ key: String) -> Any? {
- get {
- return utsSubscriptGetValue(key)
- }
- set {
- switch(key){
- case "position":
- self.position = try! utsSubscriptCheckValue(newValue)
- case "complete":
- self.complete = try! utsSubscriptCheckValueIfPresent(newValue)
- case "fail":
- self.fail = try! utsSubscriptCheckValueIfPresent(newValue)
- case "success":
- self.success = try! utsSubscriptCheckValueIfPresent(newValue)
- default:
- break
- }
- }
- }
- public override init() {
- super.init()
- }
- public init(_ obj: UTSJSONObject) {
- self.position = obj["position"] as! DevicePosition
- self.complete = obj["complete"] as! SwitchCompleteCallback?
- self.fail = obj["fail"] as! SwitchFailCallback?
- self.success = obj["success"] as! SwitchSuccessCallback?
- }
-}
-@objc(UTSSDKModulesSkinCameraUTSOnCameraFrameListenerOption)
-@objcMembers
-public class OnCameraFrameListenerOption : NSObject, UTSObject {
- public var success: OnCameraFrameCallback?
- public subscript(_ key: String) -> Any? {
- get {
- return utsSubscriptGetValue(key)
- }
- set {
- switch(key){
- case "success":
- self.success = try! utsSubscriptCheckValueIfPresent(newValue)
- default:
- break
- }
- }
- }
- public override init() {
- super.init()
- }
- public init(_ obj: UTSJSONObject) {
- self.success = obj["success"] as! OnCameraFrameCallback?
- }
-}
-public typealias TakePhoto = (_ options: TakePhotoOption) -> Void
-public typealias SetZoom = (_ options: CameraContextSetZoomOption) -> Void
-public typealias StartRecord = (_ options: CameraContextStartRecordOption) -> Void
-public typealias StopRecord = (_ options: CameraContextStopRecordOption) -> Void
-public typealias StartCameraFrame = (_ options: CameraFrameListenerStartOption) -> Void
-public typealias StopCameraFrame = (_ options: StopOption) -> Void
-public typealias SwitchCamera = (_ options: SwitchOption) -> Void
-public var RESOLUTION_MAP = Map([
- [
- "low",
- AVCaptureSession.Preset.low
- ],
- [
- "medium",
- AVCaptureSession.Preset.medium
- ],
- [
- "high",
- AVCaptureSession.Preset.high
- ]
-])
-public var FLASH_MODE_MAP = Map([
- [
- "auto",
- AVCaptureDevice.TorchMode.auto
- ],
- [
- "on",
- AVCaptureDevice.TorchMode.on
- ],
- [
- "torch",
- AVCaptureDevice.TorchMode.on
- ],
- [
- "off",
- AVCaptureDevice.TorchMode.off
- ]
-])
-public var fileOutputRecordingDelegate: MyAVCaptureFileOutputRecordingDelegate? = nil
-public var capturePhotoCaptureDelegate: MyAVCapturePhotoCaptureDelegate? = nil
-public var onCameraFrameListenerOption: OnCameraFrameListenerOption? = nil
-public var cameraContextStopRecordOption: CameraContextStopRecordOption? = nil
-@objc(UTSSDKModulesSkinCameraUTSMyAVCaptureFileOutputRecordingDelegate)
-@objcMembers
-public class MyAVCaptureFileOutputRecordingDelegate : NSObject, AVCaptureFileOutputRecordingDelegate {
- private var option: CameraContextStartRecordOption
- public init(_ option: CameraContextStartRecordOption){
- self.option = option
- }
- public func fileOutput(_ output: AVCaptureFileOutput, didStartRecordingTo fileURL: URL, from connections: [AVCaptureConnection]) -> Void {
- self.option.success?(GeneralCallbackResult(UTSJSONObject([
- "errMsg": "ok"
- ])))
- }
- public func fileOutput(_ output: AVCaptureFileOutput, didFinishRecordingTo outputFileURL: URL, from connections: [AVCaptureConnection], error: Error?) -> Void {
- if (error == nil) {
- cameraContextStopRecordOption?.success?(StopRecordSuccessCallbackResult(UTSJSONObject([
- "tempVideoPath": outputFileURL.path + "",
- "errMsg": "ok"
- ])))
- self.option.timeoutCallback?(StartRecordTimeoutCallbackResult(UTSJSONObject([
- "tempVideoPath": outputFileURL.path + ""
- ])))
- } else {
- cameraContextStopRecordOption?.fail?(GeneralCallbackResult(UTSJSONObject([
- "errMsg": "录制失败"
- ])))
- cameraContextStopRecordOption?.complete?(GeneralCallbackResult(UTSJSONObject([
- "errMsg": "录制失败"
- ])))
- }
- }
-}
-@objc(UTSSDKModulesSkinCameraUTSMyAVCapturePhotoCaptureDelegate)
-@objcMembers
-public class MyAVCapturePhotoCaptureDelegate : NSObject, AVCapturePhotoCaptureDelegate {
- private var option: TakePhotoOption
- public init(_ option: TakePhotoOption){
- self.option = option
- }
- public func captureOutput(_ output: AVCapturePhotoOutput, didFinishProcessingPhoto photo: AVCapturePhoto, error: UTSError) -> Void {
- var imageData = photo.fileDataRepresentation()
- if (imageData == nil) {
- var result = GeneralCallbackResult(UTSJSONObject([
- "errMsg": "拍照失败"
- ]))
- self.option.fail?(result)
- self.option.complete?(result)
- return
- }
- var path = UTSiOS.getDataPath() + Date.init().getTime().toString() + ".jpg"
- var url = URL(fileURLWithPath: path)
- var quality = self.option.quality ?? "original"
- if (quality == "original") {
- do {
- try imageData!.write(to: url, options: NSData.WritingOptions.atomic)
- self.option.success?(TakePhotoSuccessCallbackResult(UTSJSONObject([
- "tempImagePath": path,
- "quality": quality,
- "errMsg": "ok"
- ])))
- self.option.complete?(GeneralCallbackResult(UTSJSONObject([
- "errMsg": "ok"
- ])))
- } catch let e {
- var e = UTSError(e)
- var result = GeneralCallbackResult(UTSJSONObject([
- "errMsg": JSON.stringify(e)
- ]))
- self.option.fail?(result)
- self.option.complete?(result)
- }
- } else {
- var image = UIImage(data: imageData!)
- if (image != nil) {
- var _quality: NSNumber = 0.5
- if (quality == "high") {
- _quality = 1.0
- } else if (quality == "normal") {
- _quality = 0.8
- } else if (quality == "low") {
- _quality = 0.5
- }
- var data = image!.jpegData(compressionQuality: _quality.toDouble())!
- do {
- try data.write(to: url, options: NSData.WritingOptions.atomic)
- self.option.success?(TakePhotoSuccessCallbackResult(UTSJSONObject([
- "tempImagePath": path,
- "quality": quality,
- "errMsg": "ok"
- ])))
- self.option.complete?(GeneralCallbackResult(UTSJSONObject([
- "errMsg": "ok"
- ])))
- } catch let e {
- var e = UTSError(e)
- var result = GeneralCallbackResult(UTSJSONObject([
- "errMsg": JSON.stringify(e)
- ]))
- self.option.fail?(result)
- self.option.complete?(result)
- }
- } else {
- var result = GeneralCallbackResult(UTSJSONObject([
- "errMsg": "拍照失败"
- ]))
- self.option.fail?(result)
- self.option.complete?(result)
- }
- }
- }
-}
-@objc(UTSSDKModulesSkinCameraUTSCameraView)
-@objcMembers
-public class CameraView : NSObject, AVCaptureVideoDataOutputSampleBufferDelegate {
- private var captureSession: AVCaptureSession?
- private var videoDeviceInput: AVCaptureDeviceInput?
- private var photoDeviceOutput: AVCapturePhotoOutput?
- private var movieDeviceOutput: AVCaptureMovieFileOutput?
- private var previewLayer: AVCaptureVideoPreviewLayer?
- private var previewView: UIView?
- private var comp: UTSComponent?
- private var flashMode: FlashMode = "auto"
- private var devicePosition: DevicePosition = "back"
- private var resolution: Resolution = "medium"
- private var isListening: Bool = false
- private var onCameraFrameCallback: OnCameraFrameCallback? = nil
- public init(_ previewView: UIView, _ comp: UTSComponent, _ config: CameraConfig = CameraConfig(UTSJSONObject([:]))){
- super.init()
- self.previewView = previewView
- self.comp = comp
- self.flashMode = config.flash ?? "auto"
- self.devicePosition = config.devicePosition ?? "back"
- self.resolution = config.resolution ?? "medium"
- self.setupCamera()
- }
- public func setupCamera() {
- self.captureSession = AVCaptureSession()
- var targetResolution = RESOLUTION_MAP.get(self.resolution) ?? AVCaptureSession.Preset.high
- self.captureSession!.sessionPreset = targetResolution
- var device = self.getCameraDevice()
- do {
- var deviceInput = try AVCaptureDeviceInput(device: device)
- if (self.captureSession!.canAddInput(deviceInput)) {
- self.captureSession!.addInput(deviceInput)
- }
- var output = AVCaptureVideoDataOutput()
- output.setSampleBufferDelegate(self, queue: DispatchQueue.main)
- if (self.captureSession!.canAddOutput(output)) {
- self.captureSession!.addOutput(output)
- }
- var photoOutput = AVCapturePhotoOutput()
- if (self.captureSession!.canAddOutput(photoOutput)) {
- self.captureSession!.addOutput(photoOutput)
- }
- var movieOutput = AVCaptureMovieFileOutput()
- if (self.captureSession!.canAddOutput(movieOutput)) {
- self.captureSession!.addOutput(movieOutput)
- }
- self.videoDeviceInput = deviceInput
- self.photoDeviceOutput = photoOutput
- self.movieDeviceOutput = movieOutput
- self.previewLayer = AVCaptureVideoPreviewLayer(session: self.captureSession!)
- self.previewLayer!.videoGravity = AVLayerVideoGravity.resizeAspectFill
- self.previewLayer!.frame = self.previewView!.layer.bounds
- self.previewView!.layer.addSublayer(self.previewLayer!)
- self.captureSession!.startRunning()
- var ret: Map = Map()
- ret.set("maxZoom", device.maxAvailableVideoZoomFactor)
- var detail: Map = Map()
- detail.set("detail", ret)
- self.comp?.__$$emit("ready", detail)
- }
- catch let e {
- var e = UTSError(e)
- var ret: Map = Map()
- ret.set("errMsg", JSON.stringify(e))
- var detail: Map = Map()
- detail.set("detail", ret)
- self.comp?.__$$emit("error", detail)
- }
- }
- public func getCameraDevice() -> AVCaptureDevice {
- var cameras = AVCaptureDevice.devices(for: AVMediaType.video)
- var frontCamera: AVCaptureDevice? = nil
- var backCamera: AVCaptureDevice? = nil
- var index: NSNumber = 0
- while(index < cameras.length){
- if (index == cameras.length) {
- break
- }
- var camera = cameras[index.toInt()] as! AVCaptureDevice
- if (camera.position == AVCaptureDevice.Position.back) {
- backCamera = camera
- } else {
- frontCamera = camera
- }
- index++
- }
- if (self.devicePosition == "back") {
- return backCamera!
- } else {
- return frontCamera!
- }
- }
- public func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) -> Void {
- if (self.isListening) {
- var imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer)
- var width = CVPixelBufferGetWidth(imageBuffer!)
- var height = CVPixelBufferGetHeight(imageBuffer!)
- var res = OnCameraFrameCallbackResult(UTSJSONObject([
- "width": width as! Int,
- "height": height as! Int,
- "data": imageBuffer!
- ]))
- self.onCameraFrameCallback?(res)
- onCameraFrameListenerOption?.success?(OnCameraFrameCallbackResult(UTSJSONObject([
- "width": width as! Int,
- "height": height as! Int,
- "data": imageBuffer!
- ])))
- }
- }
- public func bindCamera() {
- self.captureSession!.startRunning()
- }
- public func unbindCamera() {
- self.captureSession!.stopRunning()
- }
- public func setConfig(_ config: CameraConfig = CameraConfig(UTSJSONObject([:]))) {
- self.flashMode = config.flash ?? "auto"
- self.devicePosition = config.devicePosition ?? "back"
- self.resolution = config.resolution ?? "medium"
- }
- public func setFlash(_ mode: FlashMode) {
- self.flashMode = mode
- var targetFlash = FLASH_MODE_MAP.get(self.flashMode) ?? AVCaptureDevice.TorchMode.auto
- do {
- var device = self.getCameraDevice()
- if (device.hasTorch && device.isTorchAvailable) {
- try device.lockForConfiguration()
- device.torchMode = targetFlash
- device.unlockForConfiguration()
- }
- }
- catch let e {
- var e = UTSError(e)
- console.log(e)
- }
- }
- public func switchCamera(_ position: DevicePosition) {
- if (!self.captureSession!.isRunning) {
- return
- }
- self.devicePosition = position
- do {
- self.captureSession!.beginConfiguration()
- self.captureSession!.removeInput(self.videoDeviceInput!)
- var device = self.getCameraDevice()
- var deviceInput = try AVCaptureDeviceInput(device: device)
- self.captureSession!.addInput(deviceInput)
- self.videoDeviceInput = deviceInput
- self.captureSession!.commitConfiguration()
- }
- catch let e {
- var e = UTSError(e)
- console.log(e)
- }
- }
- public func takePhoto(_ option: TakePhotoOption) {
- capturePhotoCaptureDelegate = MyAVCapturePhotoCaptureDelegate(option)
- var settings = AVCapturePhotoSettings()
- self.photoDeviceOutput?.capturePhoto(with: settings, delegate: capturePhotoCaptureDelegate!)
- }
- public func setZoom(_ option: CameraContextSetZoomOption) {
- do {
- var device = self.getCameraDevice()
- try device.lockForConfiguration()
- device.videoZoomFactor = option.zoom.toDouble()
- device.unlockForConfiguration()
- option.success?(SetZoomSuccessCallbackResult(UTSJSONObject([
- "zoom": option.zoom,
- "errMsg": "ok"
- ])))
- option.complete?(GeneralCallbackResult(UTSJSONObject([
- "errMsg": "ok"
- ])))
- }
- catch let e {
- var e = UTSError(e)
- var result = GeneralCallbackResult(UTSJSONObject([
- "errMsg": JSON.stringify(e)
- ]))
- option.complete?(result)
- option.fail?(result)
- }
- }
- public func startRecord(_ option: CameraContextStartRecordOption) {
- var isRecording = self.movieDeviceOutput?.isRecording ?? false
- if (isRecording) {
- option.fail?(GeneralCallbackResult(UTSJSONObject([
- "errMsg": "已经在录制或相机不存在"
- ])))
- option.complete?(GeneralCallbackResult(UTSJSONObject([
- "errMsg": "已经在录制或相机不存在"
- ])))
- return
- }
- fileOutputRecordingDelegate = MyAVCaptureFileOutputRecordingDelegate(option)
- var path = UTSiOS.getDataPath() + Date.init().getTime().toString() + ".mp4"
- var url = URL(fileURLWithPath: path)
- self.movieDeviceOutput?.startRecording(to: url, recordingDelegate: fileOutputRecordingDelegate!)
- if (option.timeout != nil && option.timeout! > 0) {
- setTimeout({
- () -> Void in
- self.movieDeviceOutput?.stopRecording()
- }, option.timeout!.toInt())
- }
- }
- public func stopRecord(_ option: CameraContextStopRecordOption) {
- var isRecording = self.movieDeviceOutput?.isRecording ?? false
- if (!isRecording) {
- option.fail?(GeneralCallbackResult(UTSJSONObject([
- "errMsg": "未开始录制"
- ])))
- option.complete?(GeneralCallbackResult(UTSJSONObject([
- "errMsg": "未开始录制"
- ])))
- return
- }
- cameraContextStopRecordOption = option
- self.movieDeviceOutput?.stopRecording()
- }
- public func onCameraFrame(_ callback: OnCameraFrameCallback? = nil) {
- self.onCameraFrameCallback = callback
- }
- public func onCameraFrameListener(_ option: OnCameraFrameListenerOption) {
- onCameraFrameListenerOption = option
- }
- public func cameraFrameOnStart(_ option: CameraFrameListenerStartOption?) {
- self.isListening = true
- option?.success?(GeneralCallbackResult(UTSJSONObject([
- "errMsg": "ok"
- ])))
- }
- public func cameraFrameOnStop(_ option: StopOption?) {
- self.isListening = false
- option?.success?(GeneralCallbackResult(UTSJSONObject([
- "errMsg": "ok"
- ])))
- }
-}
-@objc(UTSSDKModulesSkinCameraUTSCameraManager)
-@objcMembers
-public class CameraManager : NSObject {
- private var cameraView: CameraView? = nil
- private static var instance: CameraManager? = nil
- public static func getInstance() -> CameraManager {
- if (CameraManager.instance == nil) {
- CameraManager.instance = CameraManager()
- }
- return CameraManager.instance!
- }
- public func setCameraView(_ cameraView: CameraView?) -> Void {
- self.cameraView = cameraView!
- }
- public func getCameraView() -> CameraView? {
- return self.cameraView
- }
- public func dispose() -> Void {
- self.cameraView = nil
- }
-}
-@objc(XfCameraComponent)
-@objcMembers
-public class XfCameraComponent : UTSComponent {
- public var mode: String = "normal"
- public var resolution: String = "medium"
- public var position: String = "back"
- public var flash: String = "auto"
- public var frameSize: String = "medium"
- public override func created() {}
- public override func NVBeforeLoad() {}
- public override func NVLoad() -> UIView {
- var previewView = UIView()
- previewView.tag = 9527
- return previewView
- }
- public override func NVLoaded() {}
- public override func NVLayouted() {
- var previewView = self.__$$el as! UIView
- var cameraView = CameraView(previewView, self, CameraConfig(UTSJSONObject([
- "resolution": self.resolution,
- "frameSize": self.frameSize,
- "devicePosition": self.position,
- "flash": self.flash
- ])))
- CameraManager.getInstance().setCameraView(cameraView)
- }
- public override func NVBeforeUnload() {
- var ret: Map = Map()
- var detail: Map = Map()
- detail.set("detail", ret)
- self.__$$emit("stop", detail)
- CameraManager.getInstance().getCameraView()?.unbindCamera()
- }
- public override func NVUnloaded() {
- CameraManager.getInstance().dispose()
- }
- public override func unmounted() {}
- public override func __$$init() {
- self.__$$watch("position", {
- (__newValue, ___oldValue) -> Void in
- var newValue = UTSiOS.convertString(__newValue)
- var _oldValue = UTSiOS.convertString(___oldValue)
- CameraManager.getInstance().getCameraView()?.switchCamera(newValue)
- })
- self.__$$watch("flash", {
- (__newValue, ___oldValue) -> Void in
- var newValue = UTSiOS.convertString(__newValue)
- var _oldValue = UTSiOS.convertString(___oldValue)
- CameraManager.getInstance().getCameraView()?.setFlash(newValue)
- })
- }
-}
-@objc
-public protocol XfCameraElement : JSExport {
-}
-@objc(XfCameraElementImpl)
-@objcMembers
-public class XfCameraElementImpl : UniElementImpl, XfCameraElement {
- public var targetComponent: XfCameraComponent {
- get {
- return self.component as! XfCameraComponent
- }
- }
-}
-@objc(XfCameraComponentRegister)
-@objcMembers
-public class XfCameraComponentRegister : NSObject {
- public static func registerComponent() {
- UniSDKEngine.shared.registerUniComponent(type: "xf-camera", nodeClazz: XfCameraElementImpl.constructor, componentCls: XfCameraComponent.self)
- UniSDKEngine.shared.registerExtComponent(type: "xf-camera")
- }
-}
-@objc(UTSSDKModulesSkinCameraUTSCameraFrameListener)
-@objcMembers
-public class CameraFrameListener : NSObject {
- public var context: CameraContext
- public init(_ context: CameraContext){
- self.context = context
- }
- public func start() -> Void {
- self.start(nil)
- }
- public func start(_ option: CameraFrameListenerStartOption?) {
- CameraManager.getInstance().getCameraView()?.cameraFrameOnStart(option)
- }
- public func stop() -> Void {
- self.stop(nil)
- }
- public func stop(_ option: StopOption?) {
- CameraManager.getInstance().getCameraView()?.cameraFrameOnStop(option)
- }
-}
-@objc(UTSSDKModulesSkinCameraUTSCameraContext)
-@objcMembers
-public class CameraContext : NSObject {
- private var mCameraFrameListener: CameraFrameListener? = nil
- override public init(){}
- public func takePhoto(_ option: TakePhotoOption) {
- var camera = CameraManager.getInstance().getCameraView()
- if (camera == nil) {
- option.fail?(GeneralCallbackResult(UTSJSONObject([
- "errMsg": "未找到相机"
- ])))
- option.complete?(GeneralCallbackResult(UTSJSONObject([
- "errMsg": "未找到相机"
- ])))
- return
- }
- camera?.takePhoto(option)
- }
- public func setZoom(_ option: CameraContextSetZoomOption) {
- var camera = CameraManager.getInstance().getCameraView()
- if (camera == nil) {
- option.fail?(GeneralCallbackResult(UTSJSONObject([
- "errMsg": "未找到相机"
- ])))
- option.complete?(GeneralCallbackResult(UTSJSONObject([
- "errMsg": "未找到相机"
- ])))
- return
- }
- camera?.setZoom(option)
- }
- public func startRecord(_ option: CameraContextStartRecordOption) {
- var camera = CameraManager.getInstance().getCameraView()
- if (camera == nil) {
- option.fail?(GeneralCallbackResult(UTSJSONObject([
- "errMsg": "未找到相机"
- ])))
- option.complete?(GeneralCallbackResult(UTSJSONObject([
- "errMsg": "未找到相机"
- ])))
- return
- }
- camera?.startRecord(option)
- }
- public func stopRecord(_ option: CameraContextStopRecordOption) {
- var camera = CameraManager.getInstance().getCameraView()
- if (camera == nil) {
- option.fail?(GeneralCallbackResult(UTSJSONObject([
- "errMsg": "未找到相机"
- ])))
- option.complete?(GeneralCallbackResult(UTSJSONObject([
- "errMsg": "未找到相机"
- ])))
- return
- }
- camera?.stopRecord(option)
- }
- public func onCameraFrame() -> CameraFrameListener {
- return self.onCameraFrame(nil)
- }
- public func onCameraFrame(_ callback: OnCameraFrameCallback? = nil) -> CameraFrameListener {
- if (self.mCameraFrameListener == nil) {
- self.mCameraFrameListener = CameraFrameListener(self)
- }
- CameraManager.getInstance().getCameraView()?.onCameraFrame(callback)
- return self.mCameraFrameListener!
- }
- public func onCameraFrameListener(_ option: OnCameraFrameListenerOption) {
- var camera = CameraManager.getInstance().getCameraView()
- if (camera == nil) {
- return
- }
- camera?.onCameraFrameListener(option)
- }
- public func cameraFrameOnStart(_ option: CameraFrameListenerStartOption) {
- var camera = CameraManager.getInstance().getCameraView()
- if (camera == nil) {
- option.fail?(GeneralCallbackResult(UTSJSONObject([
- "errMsg": "未找到相机"
- ])))
- option.complete?(GeneralCallbackResult(UTSJSONObject([
- "errMsg": "未找到相机"
- ])))
- return
- }
- camera?.cameraFrameOnStart(option)
- }
- public func cameraFrameOnStop(_ option: StopOption) {
- var camera = CameraManager.getInstance().getCameraView()
- if (camera == nil) {
- option.fail?(GeneralCallbackResult(UTSJSONObject([
- "errMsg": "未找到相机"
- ])))
- option.complete?(GeneralCallbackResult(UTSJSONObject([
- "errMsg": "未找到相机"
- ])))
- return
- }
- camera?.cameraFrameOnStop(option)
- }
- public func switchCamera(_ option: SwitchOption) {
- var camera = CameraManager.getInstance().getCameraView()
- if (camera == nil) {
- option.fail?(GeneralCallbackResult(UTSJSONObject([
- "errMsg": "未找到相机"
- ])))
- option.complete?(GeneralCallbackResult(UTSJSONObject([
- "errMsg": "未找到相机"
- ])))
- return
- }
- camera?.switchCamera(option.position)
- option.success?(GeneralCallbackResult(UTSJSONObject([
- "errMsg": "ok"
- ])))
- option.complete?(GeneralCallbackResult(UTSJSONObject([
- "errMsg": "ok"
- ])))
- }
-}
-public var context: CameraContext = CameraContext()
-public func createCameraContext() -> CameraContext {
- return context
-}
-public var takePhoto: TakePhoto = {
-(_ options: TakePhotoOption) -> Void in
-context.takePhoto(options)
-}
-public var setZoom: SetZoom = {
-(_ options: CameraContextSetZoomOption) -> Void in
-context.setZoom(options)
-}
-public var startRecord: StartRecord = {
-(_ options: CameraContextStartRecordOption) -> Void in
-context.startRecord(options)
-}
-public var stopRecord: StopRecord = {
-(_ options: CameraContextStopRecordOption) -> Void in
-context.stopRecord(options)
-}
-public func onCameraFrameListener(_ options: OnCameraFrameListenerOption) {
- context.onCameraFrameListener(options)
-}
-public var startCameraFrame: StartCameraFrame = {
-(_ options: CameraFrameListenerStartOption) -> Void in
-context.cameraFrameOnStart(options)
-}
-public var stopCameraFrame: StopCameraFrame = {
-(_ options: StopOption) -> Void in
-context.cameraFrameOnStop(options)
-}
-public var switchCamera: SwitchCamera = {
-(_ options: SwitchOption) -> Void in
-context.switchCamera(options)
-}
-@objc(UTSSDKModulesSkinCameraUTSTakePhotoOptionJSONObject)
-@objcMembers
-public class TakePhotoOptionJSONObject : NSObject {
- public var complete: UTSCallback?
- public var fail: UTSCallback?
- public var quality: String?
- public var selfieMirror: Bool = false
- public var success: UTSCallback?
-}
-@objc(UTSSDKModulesSkinCameraUTSCameraContextSetZoomOptionJSONObject)
-@objcMembers
-public class CameraContextSetZoomOptionJSONObject : NSObject {
- public var zoom: NSNumber!
- public var complete: UTSCallback?
- public var fail: UTSCallback?
- public var success: UTSCallback?
-}
-@objc(UTSSDKModulesSkinCameraUTSCameraContextStartRecordOptionJSONObject)
-@objcMembers
-public class CameraContextStartRecordOptionJSONObject : NSObject {
- public var complete: UTSCallback?
- public var fail: UTSCallback?
- public var selfieMirror: Bool = false
- public var success: UTSCallback?
- public var timeout: NSNumber?
- public var timeoutCallback: UTSCallback?
-}
-@objc(UTSSDKModulesSkinCameraUTSCameraContextStopRecordOptionJSONObject)
-@objcMembers
-public class CameraContextStopRecordOptionJSONObject : NSObject {
- public var complete: UTSCallback?
- public var compressed: Bool = false
- public var fail: UTSCallback?
- public var success: UTSCallback?
-}
-@objc(UTSSDKModulesSkinCameraUTSCameraFrameListenerStartOptionJSONObject)
-@objcMembers
-public class CameraFrameListenerStartOptionJSONObject : NSObject {
- public var complete: UTSCallback?
- public var fail: UTSCallback?
- public var success: UTSCallback?
-}
-@objc(UTSSDKModulesSkinCameraUTSStopOptionJSONObject)
-@objcMembers
-public class StopOptionJSONObject : NSObject {
- public var complete: UTSCallback?
- public var fail: UTSCallback?
- public var success: UTSCallback?
-}
-@objc(UTSSDKModulesSkinCameraUTSSwitchOptionJSONObject)
-@objcMembers
-public class SwitchOptionJSONObject : NSObject {
- public var position: DevicePosition!
- public var complete: UTSCallback?
- public var fail: UTSCallback?
- public var success: UTSCallback?
-}
-@objc(UTSSDKModulesSkinCameraUTSOnCameraFrameListenerOptionJSONObject)
-@objcMembers
-public class OnCameraFrameListenerOptionJSONObject : NSObject {
- public var success: UTSCallback?
-}
-public func createCameraContextByJs() -> CameraContext {
- return createCameraContext()
-}
-public func takePhotoByJs(_ options: TakePhotoOptionJSONObject) -> Void {
- return takePhoto(TakePhotoOption(UTSJSONObject([
- "complete": {
- (res: GeneralCallbackResult) -> Void in
- options.complete?(res)
- },
- "fail": {
- (res: GeneralCallbackResult) -> Void in
- options.fail?(res)
- },
- "quality": options.quality,
- "selfieMirror": options.selfieMirror,
- "success": {
- (result: TakePhotoSuccessCallbackResult) -> Void in
- options.success?(result)
- }
- ])))
-}
-public func setZoomByJs(_ options: CameraContextSetZoomOptionJSONObject) -> Void {
- return setZoom(CameraContextSetZoomOption(UTSJSONObject([
- "zoom": options.zoom,
- "complete": {
- (res: GeneralCallbackResult) -> Void in
- options.complete?(res)
- },
- "fail": {
- (res: GeneralCallbackResult) -> Void in
- options.fail?(res)
- },
- "success": {
- (result: SetZoomSuccessCallbackResult) -> Void in
- options.success?(result)
- }
- ])))
-}
-public func startRecordByJs(_ options: CameraContextStartRecordOptionJSONObject) -> Void {
- return startRecord(CameraContextStartRecordOption(UTSJSONObject([
- "complete": {
- (res: GeneralCallbackResult) -> Void in
- options.complete?(res)
- },
- "fail": {
- (res: GeneralCallbackResult) -> Void in
- options.fail?(res)
- },
- "selfieMirror": options.selfieMirror,
- "success": {
- (res: GeneralCallbackResult) -> Void in
- options.success?(res)
- },
- "timeout": options.timeout,
- "timeoutCallback": {
- (result: StartRecordTimeoutCallbackResult) -> Void in
- options.timeoutCallback?(result)
- }
- ])))
-}
-public func stopRecordByJs(_ options: CameraContextStopRecordOptionJSONObject) -> Void {
- return stopRecord(CameraContextStopRecordOption(UTSJSONObject([
- "complete": {
- (res: GeneralCallbackResult) -> Void in
- options.complete?(res)
- },
- "compressed": options.compressed,
- "fail": {
- (res: GeneralCallbackResult) -> Void in
- options.fail?(res)
- },
- "success": {
- (result: StopRecordSuccessCallbackResult) -> Void in
- options.success?(result)
- }
- ])))
-}
-public func onCameraFrameListenerByJs(_ options: OnCameraFrameListenerOptionJSONObject) {
- return onCameraFrameListener(OnCameraFrameListenerOption(UTSJSONObject([
- "success": {
- (result: OnCameraFrameCallbackResult) -> Void in
- options.success?(result)
- }
- ])))
-}
-public func startCameraFrameByJs(_ options: CameraFrameListenerStartOptionJSONObject) -> Void {
- return startCameraFrame(CameraFrameListenerStartOption(UTSJSONObject([
- "complete": {
- (res: GeneralCallbackResult) -> Void in
- options.complete?(res)
- },
- "fail": {
- (res: GeneralCallbackResult) -> Void in
- options.fail?(res)
- },
- "success": {
- (res: GeneralCallbackResult) -> Void in
- options.success?(res)
- }
- ])))
-}
-public func stopCameraFrameByJs(_ options: StopOptionJSONObject) -> Void {
- return stopCameraFrame(StopOption(UTSJSONObject([
- "complete": {
- (res: GeneralCallbackResult) -> Void in
- options.complete?(res)
- },
- "fail": {
- (res: GeneralCallbackResult) -> Void in
- options.fail?(res)
- },
- "success": {
- (res: GeneralCallbackResult) -> Void in
- options.success?(res)
- }
- ])))
-}
-public func switchCameraByJs(_ options: SwitchOptionJSONObject) -> Void {
- return switchCamera(SwitchOption(UTSJSONObject([
- "position": options.position,
- "complete": {
- (res: GeneralCallbackResult) -> Void in
- options.complete?(res)
- },
- "fail": {
- (res: GeneralCallbackResult) -> Void in
- options.fail?(res)
- },
- "success": {
- (res: GeneralCallbackResult) -> Void in
- options.success?(res)
- }
- ])))
-}
-@objc(UTSSDKModulesSkinCameraUTSIndexSwift)
-@objcMembers
-public class UTSSDKModulesSkinCameraUTSIndexSwift : NSObject {
- public static func s_createCameraContextByJs() -> CameraContext {
- return createCameraContextByJs()
- }
- public static func s_takePhotoByJs(_ options: TakePhotoOptionJSONObject) -> Void {
- return takePhotoByJs(options)
- }
- public static func s_setZoomByJs(_ options: CameraContextSetZoomOptionJSONObject) -> Void {
- return setZoomByJs(options)
- }
- public static func s_startRecordByJs(_ options: CameraContextStartRecordOptionJSONObject) -> Void {
- return startRecordByJs(options)
- }
- public static func s_stopRecordByJs(_ options: CameraContextStopRecordOptionJSONObject) -> Void {
- return stopRecordByJs(options)
- }
- public static func s_onCameraFrameListenerByJs(_ options: OnCameraFrameListenerOptionJSONObject) {
- return onCameraFrameListenerByJs(options)
- }
- public static func s_startCameraFrameByJs(_ options: CameraFrameListenerStartOptionJSONObject) -> Void {
- return startCameraFrameByJs(options)
- }
- public static func s_stopCameraFrameByJs(_ options: StopOptionJSONObject) -> Void {
- return stopCameraFrameByJs(options)
- }
- public static func s_switchCameraByJs(_ options: SwitchOptionJSONObject) -> Void {
- return switchCameraByJs(options)
- }
-}
diff --git a/unpackage/dist/dev/.tsc/app-android/App.uvue.ts b/unpackage/dist/dev/.tsc/app-android/App.uvue.ts
deleted file mode 100644
index 8d92221..0000000
--- a/unpackage/dist/dev/.tsc/app-android/App.uvue.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
- let firstBackTime = 0
-
- const __sfc__ = defineApp({
- onLaunch() {
- console.log('App Launch', " at App.uvue:7")
- },
- onShow() {
- console.log('App Show', " at App.uvue:10")
- },
- onHide() {
- console.log('App Hide', " at App.uvue:13")
- },
-
- onLastPageBackPress() {
- console.log('App LastPageBackPress', " at App.uvue:17")
- if (firstBackTime == 0) {
- uni.showToast({
- title: '再按一次退出应用',
- position: 'bottom',
- })
- firstBackTime = Date.now()
- setTimeout(() => {
- firstBackTime = 0
- }, 2000)
- } else if (Date.now() - firstBackTime < 2000) {
- firstBackTime = Date.now()
- uni.exit()
- }
- },
-
- onExit() {
- console.log('App Exit', " at App.uvue:34")
- },
- })
-
-export default __sfc__
-const GenAppStyles = [_uM([["uni-row", _pS(_uM([["flexDirection", "row"]]))], ["uni-column", _pS(_uM([["flexDirection", "column"]]))]])]
diff --git a/unpackage/dist/dev/.tsc/app-android/App.uvue.ts.map b/unpackage/dist/dev/.tsc/app-android/App.uvue.ts.map
deleted file mode 100644
index 81db51a..0000000
--- a/unpackage/dist/dev/.tsc/app-android/App.uvue.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["App.uvue"],"names":[],"mappings":"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","file":"App.uvue","sourceRoot":"","sourcesContent":["\r\n\r\n"]}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.tsc/app-android/main.uts.ts b/unpackage/dist/dev/.tsc/app-android/main.uts.ts
deleted file mode 100644
index ecfa457..0000000
--- a/unpackage/dist/dev/.tsc/app-android/main.uts.ts
+++ /dev/null
@@ -1,41 +0,0 @@
-import App from './App.uvue'
-
-import { createSSRApp } from 'vue'
-export function createApp() {
- const app = createSSRApp(App)
- return {
- app
- }
-}
-export function main(app: IApp) {
- definePageRoutes();
- defineAppConfig();
- (createApp()['app'] as VueApp).mount(app, GenUniApp());
-}
-
-export class UniAppConfig extends io.dcloud.uniapp.appframe.AppConfig {
- override name: string = "SkinCamera"
- override appid: string = "__UNI__644401D"
- override versionName: string = "1.0.0"
- override versionCode: string = "100"
- override uniCompilerVersion: string = "4.87"
-
- constructor() { super() }
-}
-
-import GenPagesIndexIndexClass from './pages/index/index.uvue'
-function definePageRoutes() {
-__uniRoutes.push({ path: "pages/index/index", component: GenPagesIndexIndexClass, meta: { isQuit: true } as UniPageMeta, style: _uM([["navigationBarTitleText","uni-app x"]]) } as UniPageRoute)
-}
-const __uniTabBar: Map | null = null
-const __uniLaunchPage: Map = _uM([["url","pages/index/index"],["style",_uM([["navigationBarTitleText","uni-app x"]])]])
-function defineAppConfig(){
- __uniConfig.entryPagePath = '/pages/index/index'
- __uniConfig.globalStyle = _uM([["navigationBarTextStyle","black"],["navigationBarTitleText","uni-app x"],["navigationBarBackgroundColor","#F8F8F8"],["backgroundColor","#F8F8F8"]])
- __uniConfig.getTabBarConfig = ():Map | null => null
- __uniConfig.tabBar = __uniConfig.getTabBarConfig()
- __uniConfig.conditionUrl = ''
- __uniConfig.uniIdRouter = _uM()
-
- __uniConfig.ready = true
-}
diff --git a/unpackage/dist/dev/.tsc/app-android/output.js b/unpackage/dist/dev/.tsc/app-android/output.js
deleted file mode 100644
index 81f2095..0000000
--- a/unpackage/dist/dev/.tsc/app-android/output.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-require('vue');
-
-uni;
diff --git a/unpackage/dist/dev/.tsc/app-android/pages/index/index.uvue.ts b/unpackage/dist/dev/.tsc/app-android/pages/index/index.uvue.ts
deleted file mode 100644
index 606cab1..0000000
--- a/unpackage/dist/dev/.tsc/app-android/pages/index/index.uvue.ts
+++ /dev/null
@@ -1,81 +0,0 @@
-
- import {
- takePhoto,
- TakePhotoOption,
- TakePhotoSuccessCallbackResult,
- GeneralCallbackResult
- } from '@/uni_modules/Skin-cameraUTS'
-
-
- const __sfc__ = defineComponent({
- data() {
- return {
- yanse: "red",
- widthNum: 750,
- heightNum: 200,
-
- flash: "on",
- device: "front",
- imagePath: "",
- videoPath: "https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/2minute-demo.mp4"
- }
- },
- onLoad() {
- // let permissionNeed = ["android.permission.CAMERA", "android.permission.RECORD_AUDIO",
- // "android.permission.WRITE_EXTERNAL_STORAGE"]
- // // 请求权限
- // UTSAndroid.requestSystemPermission(UTSAndroid.getUniActivity()!, permissionNeed, function (allRight : boolean, _ : string[]) {
- // if (allRight) {
- // // 权限请求成功
- // } else {
- // //用户拒绝了部分权限
- // }
- // }, function (_ : boolean, _ : string[]) {
- // //用户拒绝了部分权限
- // })
- },
- methods: {
- onError(res : any) {
- console.log(res, " at pages/index/index.uvue:54")
- },
- _takePhoto() {
- takePhoto({
- success: (res : TakePhotoSuccessCallbackResult) => {
- console.log('takePhoto', res, " at pages/index/index.uvue:59")
- this.imagePath = res.tempImagePath;
- // _previewImage();
- },
- fail: (res : GeneralCallbackResult) => {
- console.log('takePhoto', res, " at pages/index/index.uvue:64")
- }
- } as TakePhotoOption)
- }
- }
- })
-
-export default __sfc__
-function GenPagesIndexIndexRender(this: InstanceType): any | null {
-const _ctx = this
-const _cache = this.$.renderCache
- return _cE("scroll-view", _uM({ class: "page-scroll-view" }), [
- _cE("view", null, [
- _cE("button", _uM({ onClick: _ctx._takePhoto }), "拍照", 8 /* PROPS */, ["onClick"]),
- _cE(XfCameraComponent.name, _uM({
- style: _nS(_uM({"height":"750rpx","background-color":"red"})),
- onError: _ctx.onError,
- flash: _ctx.flash,
- position: _ctx.device
- }), null, 44 /* STYLE, PROPS, NEED_HYDRATION */, ["onError", "flash", "position"]),
- isTrue(_ctx.imagePath)
- ? _cE("image", _uM({
- key: 0,
- mode: "aspectFit",
- src: _ctx.imagePath
- }), null, 8 /* PROPS */, ["src"])
- : _cC("v-if", true)
- ])
- ])
-}
-const GenPagesIndexIndexStyles = [_uM([["video", _pS(_uM([["width", "100%"], ["height", 200]]))]])]
-
-import { XfCameraComponent } from '@/uni_modules/Skin-cameraUTS?uts-proxy'
diff --git a/unpackage/dist/dev/.tsc/app-android/pages/index/index.uvue.ts.map b/unpackage/dist/dev/.tsc/app-android/pages/index/index.uvue.ts.map
deleted file mode 100644
index fc7e3dd..0000000
--- a/unpackage/dist/dev/.tsc/app-android/pages/index/index.uvue.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pages/index/index.uvue","names":[],"sources":["pages/index/index.uvue"],"sourcesContent":["\n\n\t\n\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\n\n\n\n\n\n"],"mappings":";CAgBC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;EACN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EACT,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EACf,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EAC9B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACrB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;;CAGpC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;EACd,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;GACN,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IACN,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACb,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;IAEd,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACX,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACf,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACb,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;GAC9E;EACD,CAAC;EACD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;GACR,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;GACvF,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;GACnD,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;GACT,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC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"}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/CameraManager.uts.ts b/unpackage/dist/dev/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/CameraManager.uts.ts
deleted file mode 100644
index fb0aafc..0000000
--- a/unpackage/dist/dev/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/CameraManager.uts.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { CameraView } from "./camera";
-
-export class CameraManager {
- private cameraView : CameraView | null = null;
-
- private static instance : CameraManager | null = null;
-
- public static getInstance() : CameraManager {
- if (CameraManager.instance == null) {
- CameraManager.instance = new CameraManager();
- }
- return CameraManager.instance!;
- }
-
- public setCameraView(cameraView ?: CameraView) : void {
- this.cameraView = cameraView!
- }
-
- public getCameraView() : CameraView | null {
- return this.cameraView;
- }
-
- public dispose() : void {
- this.cameraView = null;
- }
-}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/camera.uts.ts b/unpackage/dist/dev/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/camera.uts.ts
deleted file mode 100644
index e223355..0000000
--- a/unpackage/dist/dev/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/camera.uts.ts
+++ /dev/null
@@ -1,474 +0,0 @@
-import ProcessCameraProvider from 'androidx.camera.lifecycle.ProcessCameraProvider'
-import Preview from 'androidx.camera.core.Preview'
-import MirrorMode from 'androidx.camera.core.MirrorMode'
-import PreviewView from 'androidx.camera.view.PreviewView'
-import Context from 'android.content.Context'
-import FrameLayout from 'android.widget.FrameLayout'
-import ViewGroup from 'android.view.ViewGroup'
-import CameraSelector from 'androidx.camera.core.CameraSelector'
-import ImageAnalysis from 'androidx.camera.core.ImageAnalysis'
-import UseCaseGroup from 'androidx.camera.core.UseCaseGroup'
-import ContextCompat from 'androidx.core.content.ContextCompat'
-
-import LifecycleOwner from 'androidx.lifecycle.LifecycleOwner'
-import ImageCapture from 'androidx.camera.core.ImageCapture'
-import Size from 'android.util.Size'
-import ImageCaptureException from 'androidx.camera.core.ImageCaptureException'
-import File from 'java.io.File'
-
-import ImageProxy from 'androidx.camera.core.ImageProxy';
-import CameraControl from 'androidx.camera.core.CameraControl';
-
-import VideoCapture from 'androidx.camera.video.VideoCapture'
-import Recorder from 'androidx.camera.video.Recorder'
-import Recording from 'androidx.camera.video.Recording'
-import FileOutputOptions from 'androidx.camera.video.FileOutputOptions'
-import Quality from 'androidx.camera.video.Quality'
-import QualitySelector from 'androidx.camera.video.QualitySelector'
-import VideoRecordEvent from 'androidx.camera.video.VideoRecordEvent'
-
-// import Bitmap from 'android.graphics.Bitmap';
-// import FileOutputStream from 'java.io.FileOutputStream';
-// import MediaMetadataRetriever from 'android.media.MediaMetadataRetriever';
-
-import ExecutorService from 'java.util.concurrent.ExecutorService'
-import Executors from 'java.util.concurrent.Executors'
-import ImageFormat from 'android.graphics.ImageFormat';
-
-import {
- TakePhotoOption,
- GeneralCallbackResult,
- TakePhotoSuccessCallbackResult,
- CameraContextSetZoomOption,
- SetZoomSuccessCallbackResult,
- CameraContextStopRecordOption,
- CameraContextStartRecordOption,
- StartRecordTimeoutCallbackResult,
- StopRecordSuccessCallbackResult,
- OnCameraFrameCallback,
- OnCameraFrameCallbackResult,
- CameraFrameListenerStartOption,
- StopOption,
-
- CameraConfig,
- FlashMode,
- DevicePosition,
- Resolution,
- //FrameSize,
- QualityType,
- OnCameraFrameListenerOption
-} from '../interface'
-import Bitmap from "android.graphics.Bitmap";
-import FileOutputStream from "java.io.FileOutputStream";
-
-const FLASH_MODE_MAP = new Map([
- ['auto', ImageCapture.FLASH_MODE_AUTO],
- ['on', ImageCapture.FLASH_MODE_ON],
- ['torch', ImageCapture.FLASH_MODE_ON],
- ['off', ImageCapture.FLASH_MODE_OFF],
-])
-const DEVICE_POSITION_MAP = new Map([
- ['back', CameraSelector.LENS_FACING_BACK],
- ['front', CameraSelector.LENS_FACING_FRONT],
-])
-
-
-const RESOLUTION_MAP = new Map([
- ['low', Quality.LOWEST],
- ['medium', Quality.HD],
- ['high', Quality.HIGHEST],
-])
-
-const QUALITY_MAP = new Map([
- ["high", ImageCapture.CAPTURE_MODE_MAXIMIZE_QUALITY],
- ["low", ImageCapture.CAPTURE_MODE_MINIMIZE_LATENCY],
-])
-
-const MIRROR_MODE = new Map([
- [true, MirrorMode.MIRROR_MODE_ON],
- [false, MirrorMode.MIRROR_MODE_OFF],
-])
-
-export class CameraView extends FrameLayout {
- private previewView : PreviewView;
- public cameraProvider : ProcessCameraProvider | null = null;
- public cameraControl : CameraControl | null = null;
- private imageCapture : ImageCapture | null = null
- private videoCapture : VideoCapture | null = null
- private recording : Recording | null = null
- private comp : UTSComponent;
- private flashMode : FlashMode = 'auto'
- private devicePosition : DevicePosition = 'back'
- private resolution : Resolution = 'medium'
- // private frameSize : FrameSize = 'medium'
- private quality : QualityType = 'normal'
- private videoFile : File | null = null
- maxZoom : Float = (1).toFloat()
- minZoom : Float = (1).toFloat()
- private initialized : boolean = false
- private isListening : boolean = false
- private videoSelfieMirror : boolean | null = null
- private cameraContextStopRecordOption : CameraContextStopRecordOption | null = null
- private onCameraFrameCallback : OnCameraFrameCallback | null = null
- private cameraExecutor : ExecutorService | null = null
- private onCameraFrameListenerOption : OnCameraFrameListenerOption | null = null;
-
- constructor(context : Context, comp : UTSComponent, config : CameraConfig = {} as CameraConfig) {
- super(context);
- this.comp = comp
- this.flashMode = config.flash ?? 'auto'
- this.devicePosition = config.devicePosition ?? 'back'
- this.resolution = config.resolution ?? 'medium'
- // this.frameSize = config.frameSize ?? 'medium'
-
- this.previewView = new PreviewView(context);
- let layoutParam = new FrameLayout.LayoutParams(
- ViewGroup.LayoutParams.MATCH_PARENT,
- ViewGroup.LayoutParams.MATCH_PARENT);
- this.addView(this.previewView, layoutParam);
- this.setupCamera()
- }
- setupCamera() {
- // this.checkSelfPermission().then(() => {
- let cameraProviderFuture = ProcessCameraProvider.getInstance(UTSAndroid.getUniActivity()!)
- cameraProviderFuture.addListener(() => {
- try {
- this.cameraProvider = cameraProviderFuture.get()
- this.bindCamera();
- } catch (e) {
- let ret : Map = new Map();
- ret.set("errMsg", JSON.stringify(e))
- this.comp.$emit('error', ret)
- }
- }, ContextCompat.getMainExecutor(UTSAndroid.getUniActivity()!))
- // }).catch((err) => {
- // let ret : Map = new Map();
- // ret.set("errMsg", err ?? '权限不足')
- // this.comp.$emit('error', ret)
- // })
- }
- bindCamera() {
-
- let targetResolution = RESOLUTION_MAP.get(this.resolution) ?? Quality.HD;
- let captureMode = QUALITY_MAP.get(this.quality) ?? ImageCapture.CAPTURE_MODE_MAXIMIZE_QUALITY;
-
- // 创建一个Preview对象,用于显示相机预览
- let preview = new Preview.Builder()
- .build();
- preview.setSurfaceProvider(this.previewView.getSurfaceProvider());
-
- // 创建一个ImageCapture对象,用于拍照
- let imageCapture = new ImageCapture.Builder()
- .setFlashMode(FLASH_MODE_MAP.get(this.flashMode)!)
- .setCaptureMode(captureMode)
- .build();
- // 选择要使用的相机(后置或前置)
- let cameraSelector = new CameraSelector.Builder()
- .requireLensFacing(DEVICE_POSITION_MAP.get(this.devicePosition)!)
- .build();
-
- let recorder = Recorder.Builder()
- .setQualitySelector(QualitySelector.from(targetResolution))
- let mirrorMode = this.videoSelfieMirror == null ? MirrorMode.MIRROR_MODE_ON_FRONT_ONLY : MIRROR_MODE.get(this.videoSelfieMirror!);
- let videoCapture = new VideoCapture.Builder(recorder.build())
- .setMirrorMode(mirrorMode!)
- .build();
-
- this.videoCapture = videoCapture
-
- // 将参数应用到 VideoCapture
- this.imageCapture = imageCapture;
- this.cameraProvider!.unbindAll();
- let imageAnalysis = ImageAnalysis.Builder()
- // .setTargetResolution(new Size(1280, 720))
- .setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)
- .build()
-
- let viewPort = this.previewView.getViewPort()!
- let useCaseGroup = new UseCaseGroup.Builder()
- .addUseCase(preview)
- .addUseCase(imageAnalysis)
- .addUseCase(imageCapture)
- .addUseCase(videoCapture)
- .setViewPort(viewPort)
- .build();
-
- this.cameraExecutor = Executors.newSingleThreadExecutor()
- let _this = this
- class Analyzer implements ImageAnalysis.Analyzer {
- constructor() {
-
- }
- override analyze(image : ImageProxy) {
- if (_this.isListening) {
- let imageFormat = image.getFormat();
- // 获取图像的宽度和高度
- let width = image.width
- let height = image.height
-
- if (imageFormat == ImageFormat.YUV_420_888) {
- _this.onCameraFrameCallback?.({
- width,
- height,
- data: image
- } as OnCameraFrameCallbackResult)
-
- _this.onCameraFrameListenerOption?.success?.({
- width,
- height,
- data: image
- } as OnCameraFrameCallbackResult)
- }
- }
- image.close();
- }
- override getDefaultTargetResolution() : Size {
- // 返回默认的目标分辨率
- return Size(640, 480)
- }
- }
- imageAnalysis.setAnalyzer(this.cameraExecutor!, new Analyzer() as ImageAnalysis.Analyzer)
-
- let camera = this.cameraProvider!.bindToLifecycle(
- UTSAndroid.getUniActivity()! as LifecycleOwner,
- cameraSelector,
- useCaseGroup
- // preview,
- // imageCapture,
- // videoCapture
- );
- this.cameraControl = camera.getCameraControl();
- if (!this.initialized) {
- this.initialized = true
- let zoomState = camera.getCameraInfo().getZoomState().getValue();
- this.maxZoom = zoomState?.getMaxZoomRatio() ?? (1).toFloat();
- this.minZoom = zoomState?.getMinZoomRatio() ?? (1).toFloat();
- let maxZoom = this.maxZoom
-
- let ret : Map = new Map();
- ret.set("maxZoom", maxZoom)
- this.comp.$emit('ready', ret)
- }
-
- }
- unbindCamera() {
- this.cameraProvider?.unbindAll()
- this.cameraExecutor?.shutdown()
- }
- // checkSelfPermission() : Promise {
- // let permissionNeed = ["android.permission.CAMERA", "android.permission.RECORD_AUDIO", "android.permission.READ_EXTERNAL_STORAGE"]
- // return new Promise((resoleve, _) => {
- // resoleve(true);
- // UTSAndroid.requestSystemPermission(UTSAndroid.getUniActivity()!, permissionNeed, function (allRight : boolean, list : string[]) {
- // if (allRight) {
- // resoleve(true);
- // } else {
- // reject(list);
- // }
- // }, function (_ : boolean, grantedList : string[]) {
- // //grantedList
- // reject(grantedList);
- // })
- // })
- // }
- setConfig(config : CameraConfig = {} as CameraConfig) {
- this.flashMode = config.flash ?? 'auto'
- this.devicePosition = config.devicePosition ?? 'back'
- this.resolution = config.resolution ?? 'medium'
- // this.frameSize = config.frameSize ?? 'medium'
- }
- setFlash(mode : FlashMode) {
- this.flashMode = mode
- if (FLASH_MODE_MAP.get(mode) == null || this.imageCapture == null) return
- this.imageCapture!.setFlashMode(FLASH_MODE_MAP.get(mode)!)
- }
- switchCamera(position : DevicePosition) {
- this.devicePosition = position
- if (DEVICE_POSITION_MAP.get(position) == null || this.cameraProvider == null) return
- this.unbindCamera()
- this.bindCamera()
- }
- isResolutionSupported(context : Context, cameraSelector : CameraSelector, targetResolution : Size) : boolean {
- return true
- }
- takePhoto(option : TakePhotoOption) {
- let quality = option.quality ?? "high";
- this.quality = quality;
- if (quality == 'low') {
- this.unbindCamera()
- this.bindCamera()
- }
- // 设置输出目录
- let privateDir = UTSAndroid.getAppCachePath()!;
- const tempFile = new File(privateDir);
- if (!tempFile.exists()) {
- tempFile.mkdirs()
- }
- // 设置文件名
- const photoFile = new File(privateDir, Date.now() + '.png');
-
- // 处理镜像
- let metadata = new ImageCapture.Metadata();
- metadata.setReversedHorizontal(option.selfieMirror ?? DEVICE_POSITION_MAP.get(this.devicePosition)! == CameraSelector.LENS_FACING_FRONT);
-
- const outputOptions = ImageCapture.OutputFileOptions.Builder(photoFile).setMetadata(metadata).build()
- class OnImageSavedCallback implements ImageCapture.OnImageSavedCallback {
- override onImageSaved(outputFileResults : ImageCapture.OutputFileResults) {
- option.success?.({
- tempImagePath: photoFile.getAbsolutePath(),
- quality: quality,
- errMsg: 'ok'
- } as TakePhotoSuccessCallbackResult)
- option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- }
- override onError(err : ImageCaptureException) {
- const result : GeneralCallbackResult = {
- errMsg: err.toString()
- }
- option.fail?.(result)
- option.complete?.(result)
- }
- override onCaptureStarted() {
-
- }
- }
- this.imageCapture!.takePicture(outputOptions, ContextCompat.getMainExecutor(UTSAndroid.getUniActivity()!), new OnImageSavedCallback() as ImageCapture.OnImageSavedCallback)
-
- }
- setZoom(option : CameraContextSetZoomOption) {
- if (this.cameraControl != null) {
- try {
- this.cameraControl!.setZoomRatio(option.zoom.toFloat())
- option.success?.({
- zoom: option.zoom,
- errMsg: 'ok'
- } as SetZoomSuccessCallbackResult)
- option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- } catch (e) {
- const result : GeneralCallbackResult = {
- errMsg: e.toString()
- }
- option.complete?.(result)
- option.fail?.(result)
- }
- } else {
- const result : GeneralCallbackResult = {
- errMsg: '相机不存在'
- }
- option.complete?.(result)
- option.fail?.(result)
- }
- }
- startRecord(option : CameraContextStartRecordOption) {
- if (option.selfieMirror != null && this.videoSelfieMirror != option.selfieMirror) {
- this.videoSelfieMirror = option.selfieMirror
- this.unbindCamera()
- this.bindCamera()
- }
- if (this.recording != null || this.videoCapture == null) {
- option.fail?.({
- errMsg: '已经在录制或相机不存在'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '已经在录制或相机不存在'
- } as GeneralCallbackResult)
- return
- }
- // 设置输出目录
- let privateDir = UTSAndroid.getAppCachePath()!;
- // 设置文件名
- this.videoFile = new File(privateDir, Date.now() + 'video.mp4');
- let outputFileOptions = new FileOutputOptions.Builder(this.videoFile!).build();
-
-
- this.recording = this.videoCapture!.output
- .prepareRecording(UTSAndroid.getUniActivity()!, outputFileOptions)
- .withAudioEnabled()
- // .apply(()=>{
- // })
- .start(ContextCompat.getMainExecutor(UTSAndroid.getUniActivity()!), (recordEvent : VideoRecordEvent) => {
- if (recordEvent instanceof VideoRecordEvent.Start) {
- option.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
-
- if (option.timeout != null && option.timeout! > 0) {
- setTimeout(() => {
- this.recording?.stop()
- }, option.timeout!)
- }
- } else if (recordEvent instanceof VideoRecordEvent.Finalize) {
- this.recording?.close()
- this.recording = null
- let tempVideoPath = this.videoFile?.getAbsolutePath()!
- //let tempThumbPath = extractThumbnail(tempVideoPath) ?? ''
- this.cameraContextStopRecordOption?.success?.({
- tempVideoPath,
- errMsg: 'ok'
- } as StopRecordSuccessCallbackResult)
-
- option.timeoutCallback?.({
- tempVideoPath,
- } as StartRecordTimeoutCallbackResult)
- }
- })
- }
- stopRecord(option : CameraContextStopRecordOption) {
- if (this.recording == null) {
- option.fail?.({
- errMsg: '未开始录制'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未开始录制'
- } as GeneralCallbackResult)
- return
- }
- this.cameraContextStopRecordOption = option
- this.recording?.stop()
- }
- onCameraFrame(callback : OnCameraFrameCallback | null = null) {
- this.onCameraFrameCallback = callback
- }
-
- onCameraFrameListener(option : OnCameraFrameListenerOption) {
- this.onCameraFrameListenerOption = option
- }
-
- cameraFrameOnStart(option ?: CameraFrameListenerStartOption) {
- this.isListening = true
- option?.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- }
- cameraFrameOnStop(option ?: StopOption) {
- this.isListening = false
- option?.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- }
-
-}
-
-
-// // 从视频文件中提取封面的函数
-// function extractThumbnail(videoUri : string) : string | null {
-// let retriever = new MediaMetadataRetriever()
-// retriever.setDataSource(videoUri)
-// // 提取视频的某一帧作为封面
-// let thumbnail = retriever.frameAtTime
-// // 保存封面到文件
-// if (thumbnail != null) {
-// let privateDir = UTSAndroid.getAppCachePath();
-// const thumbnailFile = new File(privateDir, Date.now() + '_thumbnail.jpg');
-// let outputStream = FileOutputStream(thumbnailFile)
-// thumbnail.compress(Bitmap.CompressFormat.JPEG, 90, outputStream)
-// outputStream.close()
-// return thumbnailFile.getAbsolutePath()
-// }
-// retriever.release()
-// return null
-// }
\ No newline at end of file
diff --git a/unpackage/dist/dev/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/index.uts.ts b/unpackage/dist/dev/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/index.uts.ts
deleted file mode 100644
index 30f0623..0000000
--- a/unpackage/dist/dev/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/index.uts.ts
+++ /dev/null
@@ -1,252 +0,0 @@
-import { CameraView } from './camera'
-import {
- TakePhotoOption,
- GeneralCallbackResult,
- CameraContextSetZoomOption,
- CameraContextStartRecordOption,
- CameraContextStopRecordOption,
- // CameraFrameListener,
- OnCameraFrameCallback,
- // OnCameraFrameCallbackResult,
- CameraFrameListenerStartOption,
- StopOption,
- TakePhoto,
- SetZoom,
- StartRecord,
- StopRecord,
- StartCameraFrame,
- StopCameraFrame,
- OnCameraFrameListenerOption,
- SwitchOption,
- SwitchCamera
-} from '../interface'
-import { CameraManager } from "./CameraManager";
-
-
-class CameraFrameListener {
- context : CameraContext
- constructor(context : CameraContext) {
- this.context = context
- }
- start() : void
- start(option ?: CameraFrameListenerStartOption) {
- this.context.getCamera().then((camera : CameraView) => {
- camera.cameraFrameOnStart(option)
- })
- }
- stop() : void
- stop(option ?: StopOption) {
- this.context.getCamera().then((camera : CameraView) => {
- camera.cameraFrameOnStop(option)
- })
- }
-}
-
-class CameraContext {
- private mCameraFrameListener : CameraFrameListener | null = null
- constructor() {
- }
- getCamera() : Promise {
- let cameraPreview = CameraManager.getInstance().getCameraView()
- if (cameraPreview != null) {
- return Promise.resolve(cameraPreview);
- }
- let resolveFunc : ((res : CameraView) => void) | null = null
- let rejectFunc : ((res : string) => void) | null = null
-
- let maxAttempts : number = 5
- let currentAttempt : number = 0
-
- function attemptGetCamera() {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera !== null) {
- resolveFunc?.(camera)
- } else if (currentAttempt < maxAttempts) {
- currentAttempt++
- setTimeout(() => {
- attemptGetCamera()
- }, 100)
- } else {
- rejectFunc?.('Camera not found after multiple attempts')
- }
- }
- return new Promise((resolve, reject) => {
- resolveFunc = resolve
- rejectFunc = reject
- attemptGetCamera()
- })
- }
-
-
- takePhoto(option : TakePhotoOption) {
- this.getCamera().then((camera : CameraView) => {
- camera.takePhoto(option)
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- })
-
- }
- setZoom(option : CameraContextSetZoomOption) {
- this.getCamera().then((camera : CameraView) => {
- camera.setZoom(option)
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- })
- }
- startRecord(option : CameraContextStartRecordOption) {
- this.getCamera().then((camera : CameraView) => {
- camera.startRecord(option)
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- })
- }
- stopRecord(option : CameraContextStopRecordOption) {
- this.getCamera().then((camera : CameraView) => {
- camera.stopRecord(option)
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- })
- }
- onCameraFrame() : CameraFrameListener
- onCameraFrame(callback : OnCameraFrameCallback | null = null) : CameraFrameListener {
- if (this.mCameraFrameListener == null) {
- this.mCameraFrameListener = new CameraFrameListener(this)
- }
- this.getCamera().then((camera : CameraView) => {
- camera.onCameraFrame(callback)
- })
- return this.mCameraFrameListener!
- }
- //////////////////////////////////////////////////////
- onCameraFrameListener(option : OnCameraFrameListenerOption) {
- this.getCamera().then((camera : CameraView) => {
- camera.onCameraFrameListener(option)
- }).catch(() => {
- __f__('log','at uni_modules/Skin-cameraUTS/utssdk/app-android/index.uts:145',"未找到相机")
- })
- }
-
- cameraFrameOnStart(option : CameraFrameListenerStartOption) {
- this.getCamera().then((camera : CameraView) => {
- camera.cameraFrameOnStart(option)
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- })
- }
-
- cameraFrameOnStop(option : StopOption) {
- this.getCamera().then((camera : CameraView) => {
- camera.cameraFrameOnStop(option)
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- })
- }
-
- switchCamera(option : SwitchOption) {
- this.getCamera().then((camera : CameraView) => {
- camera.switchCamera(option.position)
-
- option.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- })
- }
-}
-
-let context : CameraContext = new CameraContext();
-
-export function createCameraContext() : CameraContext {
- return context;
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-
-export const takePhoto : TakePhoto = function (options : TakePhotoOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.takePhoto(options)
- }, null)
-}
-
-export const setZoom : SetZoom = function (options : CameraContextSetZoomOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.setZoom(options)
- }, null)
-}
-
-export const startRecord : StartRecord = function (options : CameraContextStartRecordOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.startRecord(options)
- }, null)
-}
-
-export const stopRecord : StopRecord = function (options : CameraContextStopRecordOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.stopRecord(options)
- }, null)
-}
-
-@UTSJS.keepAlive
-export function onCameraFrameListener(options : OnCameraFrameListenerOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.onCameraFrameListener(options)
- }, null)
-}
-
-export const startCameraFrame : StartCameraFrame = function (options : CameraFrameListenerStartOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.cameraFrameOnStart(options)
- }, null)
-}
-
-export const stopCameraFrame : StopCameraFrame = function (options : StopOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.cameraFrameOnStop(options)
- }, null)
-}
-
-
-export const switchCamera : SwitchCamera = function (options : SwitchOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.switchCamera(options)
- }, null)
-}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/index.vue.ts b/unpackage/dist/dev/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/index.vue.ts
deleted file mode 100644
index 4f8e72c..0000000
--- a/unpackage/dist/dev/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/index.vue.ts
+++ /dev/null
@@ -1,151 +0,0 @@
-//
-//
-//
-//
-//
-
- import { CameraView } from './camera';
- import { CameraConfig } from '../interface'
- import { CameraManager } from './CameraManager';
-
- //原生提供以下属性或方法的实现
- export default {
- /**
- * 组件名称,也就是开发者使用的标签
- */
- name: "xf-camera",
- /**
- * 组件涉及的事件声明,只有声明过的事件,才能被正常发送
- */
- emits: ['stop', 'error', 'ready'],
- /**
- * 属性声明,组件的使用者会传递这些属性值到组件
- */
- props: {
- "mode": {
- type: String,
- default: "normal"
- },
- "resolution": {
- type: String,
- default: "medium" // low | high
- },
- "position": {
- type: String,
- default: "back" // front前置 |back 后置
- },
- "flash": {
- type: String,
- default: "auto" // auto, on, off, torch
- },
- "frameSize": {
- type: String,
- default: "medium" // small|large
- }
- },
- /**
- * 组件内部变量声明
- */
- data() {
- return {}
- },
- /**
- * 属性变化监听器实现
- */
- watch: {
- "position": {
- /**
- * 这里监听属性变化,并进行组件内部更新
- */
- handler(newValue : string, _ : string) {
- this.$el?.switchCamera(newValue)
- },
- immediate: false // 创建时是否通过此方法更新属性,默认值为false
- },
- "flash": {
- /**
- * 这里监听属性变化,并进行组件内部更新
- */
- handler(newValue : string, _ : string) {
- this.$el?.setFlash(newValue)
- },
- immediate: false // 创建时是否通过此方法更新属性,默认值为false
-
- }
- },
- /**
- * 规则:如果没有配置expose,则methods中的方法均对外暴露,如果配置了expose,则以expose的配置为准向外暴露
- * ['publicMethod'] 含义为:只有 `publicMethod` 在实例上可用
- */
- expose: [],
- methods: {
-
- },
- /**
- * [可选实现] 组件被创建,组件第一个生命周期,
- * 在内存中被占用的时候被调用,开发者可以在这里执行一些需要提前执行的初始化逻辑
- */
- created() {
-
- },
- /**
- * [可选实现] 对应平台的view载体即将被创建,对应前端beforeMount
- */
- NVBeforeLoad() {
-
- },
- /**
- * [必须实现] 创建原生View,必须定义返回值类型
- * 开发者需要重点实现这个函数,声明原生组件被创建出来的过程,以及最终生成的原生组件类型
- * (Android需要明确知道View类型,需特殊校验)
- */
- NVLoad() : CameraView {
- let previewView = new CameraView(this.$androidContext!, this)
- previewView.setTag("9527");
- CameraManager.getInstance().setCameraView(previewView);
- return previewView
-
- },
- /**
- * [可选实现] 原生View已创建
- */
- NVLoaded() {
-
- },
- /**
- * [可选实现] 原生View布局完成
- */
- NVLayouted() {
- this.$el?.setConfig({
- resolution: this.resolution,
- frameSize: this.frameSize,
- flash: this.flash
- } as CameraConfig)
- this.$el?.switchCamera(this.position)
- },
- /**
- * [可选实现] 原生View将释放
- */
- NVBeforeUnload() {
- let ret : Map = new Map();
- this.$emit('stop', ret)
-
- this.$el?.unbindCamera()
- },
- /**
- * [可选实现] 原生View已释放,这里可以做释放View之后的操作
- */
- NVUnloaded() {
- CameraManager.getInstance().dispose();
- },
- /**
- * [可选实现] 组件销毁
- */
- unmounted() {
-
- },
- }
-/*
-
-
-*/
\ No newline at end of file
diff --git a/unpackage/dist/dev/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-ios/CameraManager.uts.ts b/unpackage/dist/dev/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-ios/CameraManager.uts.ts
deleted file mode 100644
index fb0aafc..0000000
--- a/unpackage/dist/dev/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-ios/CameraManager.uts.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { CameraView } from "./camera";
-
-export class CameraManager {
- private cameraView : CameraView | null = null;
-
- private static instance : CameraManager | null = null;
-
- public static getInstance() : CameraManager {
- if (CameraManager.instance == null) {
- CameraManager.instance = new CameraManager();
- }
- return CameraManager.instance!;
- }
-
- public setCameraView(cameraView ?: CameraView) : void {
- this.cameraView = cameraView!
- }
-
- public getCameraView() : CameraView | null {
- return this.cameraView;
- }
-
- public dispose() : void {
- this.cameraView = null;
- }
-}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-ios/camera.uts.ts b/unpackage/dist/dev/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-ios/camera.uts.ts
deleted file mode 100644
index a8f7c14..0000000
--- a/unpackage/dist/dev/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-ios/camera.uts.ts
+++ /dev/null
@@ -1,469 +0,0 @@
-import { UIImage, UIView } from 'UIKit';
-import { AVCaptureDevice, AVCaptureDeviceInput, AVCaptureSession, AVCaptureVideoPreviewLayer, AVMediaType, AVLayerVideoGravity, AVCaptureVideoDataOutput, AVCaptureVideoDataOutputSampleBufferDelegate, AVCaptureOutput, AVCaptureConnection, AVCapturePhotoOutput, AVCapturePhotoSettings, AVCapturePhotoCaptureDelegate, AVCaptureMovieFileOutput, AVCaptureFileOutputRecordingDelegate, AVCaptureFileOutput } from "AVFoundation";
-import { CMSampleBuffer, CMSampleBufferGetImageBuffer } from 'CoreMedia';
-import { DispatchQueue } from 'Dispatch';
-import { CVPixelBufferGetWidth, CVPixelBufferGetHeight } from "CoreVideo";
-import { NSError, URL } from "Foundation";
-
-import {
- TakePhotoOption,
- GeneralCallbackResult,
- TakePhotoSuccessCallbackResult,
- CameraContextSetZoomOption,
- SetZoomSuccessCallbackResult,
- CameraContextStopRecordOption,
- CameraContextStartRecordOption,
- StartRecordTimeoutCallbackResult,
- StopRecordSuccessCallbackResult,
- OnCameraFrameCallback,
- OnCameraFrameCallbackResult,
- OnCameraFrameListenerOption,
- CameraFrameListenerStartOption,
- StopOption,
-
- CameraConfig,
- FlashMode,
- DevicePosition,
- Resolution
-} from '../interface'
-import { AVCapturePhoto } from 'AVFoundation';
-
-
-
-const RESOLUTION_MAP = new Map([
- ['low', AVCaptureSession.Preset.low],
- ['medium', AVCaptureSession.Preset.medium],
- ['high', AVCaptureSession.Preset.high],
-])
-
-const FLASH_MODE_MAP = new Map([
- ['auto', AVCaptureDevice.TorchMode.auto],
- ['on', AVCaptureDevice.TorchMode.on],
- ['torch', AVCaptureDevice.TorchMode.on],
- ['off', AVCaptureDevice.TorchMode.off],
-])
-
-
-let fileOutputRecordingDelegate : MyAVCaptureFileOutputRecordingDelegate | null = null;
-let capturePhotoCaptureDelegate : MyAVCapturePhotoCaptureDelegate | null = null;
-let onCameraFrameListenerOption : OnCameraFrameListenerOption | null = null;
-let cameraContextStopRecordOption : CameraContextStopRecordOption | null = null;
-
-class MyAVCaptureFileOutputRecordingDelegate implements AVCaptureFileOutputRecordingDelegate {
- private option : CameraContextStartRecordOption;
-
- constructor(option : CameraContextStartRecordOption) {
- this.option = option;
- }
-
- fileOutput(output : AVCaptureFileOutput, @argumentLabel("didStartRecordingTo") fileURL : URL, @argumentLabel("from") connections : [AVCaptureConnection]) : void {
- this.option.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- }
-
- fileOutput(output : AVCaptureFileOutput, @argumentLabel("didFinishRecordingTo") outputFileURL : URL, @argumentLabel("from") connections : [AVCaptureConnection], @argumentLabel("error") error ?: NSError) : void {
- if (error == null) {
- cameraContextStopRecordOption?.success?.({
- tempVideoPath: outputFileURL.path + "",
- errMsg: 'ok'
- } as StopRecordSuccessCallbackResult)
-
- this.option.timeoutCallback?.({
- tempVideoPath: outputFileURL.path + ""
- } as StartRecordTimeoutCallbackResult)
- } else {
- cameraContextStopRecordOption?.fail?.({
- errMsg: '录制失败'
- } as GeneralCallbackResult)
- cameraContextStopRecordOption?.complete?.({
- errMsg: '录制失败'
- } as GeneralCallbackResult)
- }
-
- }
-
-}
-
-class MyAVCapturePhotoCaptureDelegate implements AVCapturePhotoCaptureDelegate {
- private option : TakePhotoOption;
-
- constructor(option : TakePhotoOption) {
- this.option = option;
- }
-
- captureOutput(output : AVCapturePhotoOutput, @argumentLabel("didFinishProcessingPhoto") photo : AVCapturePhoto, @argumentLabel("error") error : Error) : void {
- let imageData = photo.fileDataRepresentation()
- if (imageData == null) {
- const result : GeneralCallbackResult = {
- errMsg: "拍照失败"
- }
- this.option.fail?.(result)
- this.option.complete?.(result)
- return;
- }
- let path = UTSiOS.getDataPath() + (new Date().getTime()).toString() + ".jpg";
- let url = new URL(fileURLWithPath = path);
-
- let quality = this.option.quality ?? "original"
- if (quality == 'original') {
- try {
- UTSiOS.try(imageData!.write(to = url, options = NSData.WritingOptions.atomic))
-
- this.option.success?.({
- tempImagePath: path,
- quality: quality,
- errMsg: 'ok'
- } as TakePhotoSuccessCallbackResult)
- this.option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- } catch (e) {
- const result : GeneralCallbackResult = {
- errMsg: JSON.stringify(e)
- }
- this.option.fail?.(result)
- this.option.complete?.(result)
- }
- } else {
- let image = UIImage(data = imageData!)
- if (image != null) {
- let _quality : number = 0.5;
- if (quality == 'high') {
- _quality = 1.0;
- } else if (quality == 'normal') {
- _quality = 0.8;
- } else if (quality == 'low') {
- _quality = 0.5;
- }
- let data = image!.jpegData(compressionQuality = _quality.toDouble())!
-
- try {
- UTSiOS.try(data.write(to = url, options = NSData.WritingOptions.atomic))
-
- this.option.success?.({
- tempImagePath: path,
- quality: quality,
- errMsg: 'ok'
- } as TakePhotoSuccessCallbackResult)
- this.option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- } catch (e) {
- const result : GeneralCallbackResult = {
- errMsg: JSON.stringify(e)
- }
- this.option.fail?.(result)
- this.option.complete?.(result)
- }
- } else {
- const result : GeneralCallbackResult = {
- errMsg: "拍照失败"
- }
- this.option.fail?.(result)
- this.option.complete?.(result)
- }
- }
- }
-
-}
-
-export class CameraView implements AVCaptureVideoDataOutputSampleBufferDelegate {
-
- private captureSession ?: AVCaptureSession;
- private videoDeviceInput ?: AVCaptureDeviceInput;
- private photoDeviceOutput ?: AVCapturePhotoOutput;
- private movieDeviceOutput ?: AVCaptureMovieFileOutput;
- private previewLayer ?: AVCaptureVideoPreviewLayer;
- private previewView ?: UIView;
- private comp ?: UTSComponent;
- private flashMode : FlashMode = 'auto'
- private devicePosition : DevicePosition = 'back'
- private resolution : Resolution = 'medium'
- private isListening : boolean = false
- private onCameraFrameCallback : OnCameraFrameCallback | null = null;
-
- constructor(previewView : UIView, comp : UTSComponent, config : CameraConfig = {} as CameraConfig) {
- super.init();
- this.previewView = previewView
- this.comp = comp
- this.flashMode = config.flash ?? 'auto'
- this.devicePosition = config.devicePosition ?? 'back'
- this.resolution = config.resolution ?? 'medium'
- this.setupCamera();
- }
-
- setupCamera() {
- this.captureSession = new AVCaptureSession();
- let targetResolution = RESOLUTION_MAP.get(this.resolution) ?? AVCaptureSession.Preset.high;
- this.captureSession!.sessionPreset = targetResolution;
- let device = this.getCameraDevice();
- try {
- //相机
- let deviceInput = UTSiOS.try(new AVCaptureDeviceInput(device = device))
- if (this.captureSession!.canAddInput(deviceInput)) {
- this.captureSession!.addInput(deviceInput);
- }
- //实时流输出
- let output = new AVCaptureVideoDataOutput();
- output.setSampleBufferDelegate(this, queue = DispatchQueue.main);
- if (this.captureSession!.canAddOutput(output)) {
- this.captureSession!.addOutput(output);
- }
-
- let photoOutput = new AVCapturePhotoOutput();
- // let photoSettings = new AVCapturePhotoSettings(format = [AVVideoCodecKey = AVVideoCodecType.jpeg]);
- // photoOutput.setPreparedPhotoSettingsArray([photoSettings], completionHandler = null);
- if (this.captureSession!.canAddOutput(photoOutput)) {
- this.captureSession!.addOutput(photoOutput);
- }
-
- let movieOutput = new AVCaptureMovieFileOutput();
- if (this.captureSession!.canAddOutput(movieOutput)) {
- this.captureSession!.addOutput(movieOutput);
- }
-
- this.videoDeviceInput = deviceInput;
- this.photoDeviceOutput = photoOutput;
- this.movieDeviceOutput = movieOutput;
- this.previewLayer = new AVCaptureVideoPreviewLayer(session = this.captureSession!)
- this.previewLayer!.videoGravity = AVLayerVideoGravity.resizeAspectFill;
- this.previewLayer!.frame = this.previewView!.layer.bounds;
- this.previewView!.layer.addSublayer(this.previewLayer!)
- this.captureSession!.startRunning();
-
- let ret : Map = new Map();
- ret.set("maxZoom", device.maxAvailableVideoZoomFactor)
- let detail : Map = new Map();
- detail.set("detail", ret)
- this.comp?.$emit("ready", detail);
- } catch (e) {
- let ret : Map = new Map();
- ret.set("errMsg", JSON.stringify(e))
- let detail : Map = new Map();
- detail.set("detail", ret)
- this.comp?.$emit("error", detail);
- }
- }
-
- getCameraDevice() : AVCaptureDevice {
- let cameras = AVCaptureDevice.devices(for = AVMediaType.video)
- let frontCamera : AVCaptureDevice | null = null;
- let backCamera : AVCaptureDevice | null = null;
-
- let index = 0;
- while (index < cameras.length) {
- if (index == cameras.length) {
- break;
- }
- let camera = cameras[index.toInt()] as AVCaptureDevice;
- if (camera.position == AVCaptureDevice.Position.back) {
- backCamera = camera;
- } else {
- frontCamera = camera;
- }
- index++;
- }
-
- if (this.devicePosition == 'back') {
- return backCamera!;
- } else {
- return frontCamera!;
- }
- }
-
- captureOutput(output : AVCaptureOutput, @argumentLabel("didOutput") sampleBuffer : CMSampleBuffer, @argumentLabel("from") connection : AVCaptureConnection) : void {
-
- if (this.isListening) {
- let imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer)
- let width = CVPixelBufferGetWidth(imageBuffer!)
- let height = CVPixelBufferGetHeight(imageBuffer!);
-
- const res : OnCameraFrameCallbackResult = {
- width: width as Int,
- height: height as Int,
- data: imageBuffer!
- };
- this.onCameraFrameCallback?.(res)
- onCameraFrameListenerOption?.success?.({
- width: width as Int,
- height: height as Int,
- data: imageBuffer!
- } as OnCameraFrameCallbackResult)
-
- // this.onCameraFrameListenerOption?.success({
- // width: width as Int,
- // height: height as Int,
- // data: imageBuffer!
- // } as OnCameraFrameCallbackResult)
-
-
- // if (imageBuffer != null) {
- // let ciImage = new CIImage(cvPixelBuffer = imageBuffer!)
- // let temporaryContext = new CIContext(options = null)
- // let width = CVPixelBufferGetWidth(imageBuffer!)
- // let height = CVPixelBufferGetHeight(imageBuffer!);
- // let videoImage = temporaryContext.createCGImage(ciImage, from = new CGRect(x = 0, y = 0, width = width, height = height))
- // let image = new UIImage(cgImage = videoImage!)
-
- // this.onCameraFrameCallback?.({
- // width: width as Int,
- // height: height as Int,
- // data: image
- // } as OnCameraFrameCallbackResult)
- // }
- }
- }
-
- bindCamera() {
- this.captureSession!.startRunning();
- }
-
-
- unbindCamera() {
- this.captureSession!.stopRunning();
- }
-
-
- setConfig(config : CameraConfig = {} as CameraConfig) {
- this.flashMode = config.flash ?? 'auto'
- this.devicePosition = config.devicePosition ?? 'back'
- this.resolution = config.resolution ?? 'medium'
- }
-
- setFlash(mode : FlashMode) {
- this.flashMode = mode
- let targetFlash = FLASH_MODE_MAP.get(this.flashMode) ?? AVCaptureDevice.TorchMode.auto;
- try {
- let device = this.getCameraDevice();
- if (device.hasTorch && device.isTorchAvailable) {
- UTSiOS.try(device.lockForConfiguration());
- device.torchMode = targetFlash;
- device.unlockForConfiguration()
- }
- } catch (e) {
- __f__('log','at uni_modules/Skin-cameraUTS/utssdk/app-ios/camera.uts:345',e)
- }
- }
-
-
- switchCamera(position : DevicePosition) {
- if (!this.captureSession!.isRunning) {
- return;
- }
- this.devicePosition = position;
- try {
- this.captureSession!.beginConfiguration();
- this.captureSession!.removeInput(this.videoDeviceInput!);
- let device = this.getCameraDevice();
-
- let deviceInput = UTSiOS.try(new AVCaptureDeviceInput(device = device))
- this.captureSession!.addInput(deviceInput);
- this.videoDeviceInput = deviceInput;
- this.captureSession!.commitConfiguration();
- } catch (e) {
- __f__('log','at uni_modules/Skin-cameraUTS/utssdk/app-ios/camera.uts:365',e)
- }
- }
-
- takePhoto(option : TakePhotoOption) {
- capturePhotoCaptureDelegate = new MyAVCapturePhotoCaptureDelegate(option);
- let settings = new AVCapturePhotoSettings()
- this.photoDeviceOutput?.capturePhoto(with = settings, delegate = capturePhotoCaptureDelegate!);
- }
-
-
- setZoom(option : CameraContextSetZoomOption) {
- try {
- let device = this.getCameraDevice();
- // if (device.isRampingVideoZoom) {
- UTSiOS.try(device.lockForConfiguration());
- device.videoZoomFactor = option.zoom.toDouble();
- device.unlockForConfiguration()
-
- option.success?.({
- zoom: option.zoom,
- errMsg: 'ok'
- } as SetZoomSuccessCallbackResult)
- option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- // } else {
- // const result : GeneralCallbackResult = {
- // errMsg: '相机不支持缩放'
- // }
- // option.complete?.(result)
- // option.fail?.(result)
- // }
- } catch (e) {
- const result : GeneralCallbackResult = {
- errMsg: JSON.stringify(e)
- }
- option.complete?.(result)
- option.fail?.(result)
- }
- }
-
- startRecord(option : CameraContextStartRecordOption) {
- let isRecording = this.movieDeviceOutput?.isRecording ?? false;
- if (isRecording) {
- option.fail?.({
- errMsg: '已经在录制或相机不存在'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '已经在录制或相机不存在'
- } as GeneralCallbackResult)
- return
- }
-
- fileOutputRecordingDelegate = new MyAVCaptureFileOutputRecordingDelegate(option);
- let path = UTSiOS.getDataPath() + (new Date().getTime()).toString() + ".mp4";
- let url = new URL(fileURLWithPath = path);
- this.movieDeviceOutput?.startRecording(to = url, recordingDelegate = fileOutputRecordingDelegate!);
-
- if (option.timeout != null && option.timeout! > 0) {
- setTimeout(() => {
- this.movieDeviceOutput?.stopRecording();
- }, (option.timeout!).toInt())
- }
- }
-
-
- stopRecord(option : CameraContextStopRecordOption) {
- let isRecording = this.movieDeviceOutput?.isRecording ?? false;
- if (!isRecording) {
- option.fail?.({
- errMsg: '未开始录制'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未开始录制'
- } as GeneralCallbackResult)
- return
- }
- cameraContextStopRecordOption = option;
- this.movieDeviceOutput?.stopRecording();
- }
-
-
- onCameraFrame(callback : OnCameraFrameCallback | null = null) {
- this.onCameraFrameCallback = callback
- }
-
- onCameraFrameListener(option : OnCameraFrameListenerOption) {
- onCameraFrameListenerOption = option
- }
-
- cameraFrameOnStart(option ?: CameraFrameListenerStartOption) {
- this.isListening = true
- option?.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- }
-
- cameraFrameOnStop(option ?: StopOption) {
- this.isListening = false
- option?.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- }
-}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.uts.ts b/unpackage/dist/dev/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.uts.ts
deleted file mode 100644
index b254595..0000000
--- a/unpackage/dist/dev/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.uts.ts
+++ /dev/null
@@ -1,207 +0,0 @@
-import {
- TakePhotoOption,
- GeneralCallbackResult,
- CameraContextSetZoomOption,
- CameraContextStartRecordOption,
- CameraContextStopRecordOption,
- OnCameraFrameCallback,
- CameraFrameListenerStartOption,
- StopOption,
- TakePhoto,
- SetZoom,
- StartRecord,
- StopRecord,
- StartCameraFrame,
- StopCameraFrame,
- OnCameraFrameListenerOption,
- SwitchCamera,
- SwitchOption
-} from '../interface'
-import { CameraManager } from './CameraManager';
-
-class CameraFrameListener {
- context : CameraContext
- constructor(context : CameraContext) {
- this.context = context
- }
- start() : void
- start(option ?: CameraFrameListenerStartOption) {
- CameraManager.getInstance().getCameraView()?.cameraFrameOnStart(option)
- }
- stop() : void
- stop(option ?: StopOption) {
- CameraManager.getInstance().getCameraView()?.cameraFrameOnStop(option)
- }
-}
-
-class CameraContext {
- private mCameraFrameListener : CameraFrameListener | null = null
-
- constructor() {
-
- }
-
- takePhoto(option : TakePhotoOption) {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- return;
- }
- camera?.takePhoto(option)
- }
-
- setZoom(option : CameraContextSetZoomOption) {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- return;
- }
-
- camera?.setZoom(option)
- }
-
- startRecord(option : CameraContextStartRecordOption) {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- return;
- }
- camera?.startRecord(option)
- }
-
- stopRecord(option : CameraContextStopRecordOption) {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- return;
- }
- camera?.stopRecord(option)
- }
-
- onCameraFrame() : CameraFrameListener
- onCameraFrame(callback : OnCameraFrameCallback | null = null) : CameraFrameListener {
- if (this.mCameraFrameListener == null) {
- this.mCameraFrameListener = new CameraFrameListener(this)
- }
- CameraManager.getInstance().getCameraView()?.onCameraFrame(callback)
- return this.mCameraFrameListener!
- }
- //////////////////////////////////////////////////////
- onCameraFrameListener(option : OnCameraFrameListenerOption) {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera == null) {
- return;
- }
- camera?.onCameraFrameListener(option)
- }
-
- cameraFrameOnStart(option : CameraFrameListenerStartOption) {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- return;
- }
- camera?.cameraFrameOnStart(option)
- }
-
- cameraFrameOnStop(option : StopOption) {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- return;
- }
- camera?.cameraFrameOnStop(option)
- }
-
- switchCamera(option : SwitchOption) {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- return;
- }
- camera?.switchCamera(option.position)
-
- option.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- }
-}
-
-let context : CameraContext = new CameraContext();
-
-export function createCameraContext() : CameraContext {
- return context;
-}
-
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-export const takePhoto : TakePhoto = function (options : TakePhotoOption) {
- context.takePhoto(options)
-}
-
-export const setZoom : SetZoom = function (options : CameraContextSetZoomOption) {
- context.setZoom(options)
-}
-
-export const startRecord : StartRecord = function (options : CameraContextStartRecordOption) {
- context.startRecord(options)
-}
-
-export const stopRecord : StopRecord = function (options : CameraContextStopRecordOption) {
- context.stopRecord(options)
-}
-
-@UTSJS.keepAlive
-export function onCameraFrameListener(options : OnCameraFrameListenerOption) {
- context.onCameraFrameListener(options)
-}
-
-export const startCameraFrame : StartCameraFrame = function (options : CameraFrameListenerStartOption) {
- context.cameraFrameOnStart(options)
-}
-
-export const stopCameraFrame : StopCameraFrame = function (options : StopOption) {
- context.cameraFrameOnStop(options)
-}
-
-export const switchCamera : SwitchCamera = function (options : SwitchOption) {
- context.switchCamera(options)
-}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.vue.ts b/unpackage/dist/dev/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.vue.ts
deleted file mode 100644
index 2a804f7..0000000
--- a/unpackage/dist/dev/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.vue.ts
+++ /dev/null
@@ -1,166 +0,0 @@
-//
-//
-//
-//
-
- import { UIView } from "UIKit"
- import { CameraView } from "./camera";
- import { CameraConfig } from '../interface'
- import { CameraManager } from "./CameraManager";
-
- //原生提供以下属性或方法的实现
- export default {
- data() {
- return {
- };
- },
- /**
- * 组件名称,也就是开发者使用的标签
- */
- name: "xf-camera",
- /**
- * 组件涉及的事件声明,只有声明过的事件,才能被正常发送
- */
- emits: ['stop', 'error', 'ready'],
- /**
- * 属性声明,组件的使用者会传递这些属性值到组件
- */
- props: {
- "mode": {
- type: String,
- default: "normal"
- },
- "resolution": {
- type: String,
- default: "medium" // low | high
- },
- "position": {
- type: String,
- default: "back" // front前置 |back 后置
- },
- "flash": {
- type: String,
- default: "auto" // auto, on, off, torch
- },
- "frameSize": {
- type: String,
- default: "medium" // small|large
- }
- },
- /**
- * 属性变化监听器实现
- */
- watch: {
- "position": {
- /**
- * 这里监听属性变化,并进行组件内部更新
- */
- handler(newValue : String, _oldValue : String) {
- CameraManager.getInstance().getCameraView()?.switchCamera(newValue)
- },
- /**
- * 创建时是否通过此方法更新属性,默认值为false
- */
- immediate: false
- },
- "flash": {
- /**
- * 这里监听属性变化,并进行组件内部更新
- */
- handler(newValue : String, _oldValue : String) {
- CameraManager.getInstance().getCameraView()?.setFlash(newValue)
- },
- /**
- * 创建时是否通过此方法更新属性,默认值为false
- */
- immediate: false
- }
- },
- /**
- * 规则:如果没有配置expose,则methods中的方法均对外暴露,如果配置了expose,则以expose的配置为准向外暴露
- * ['publicMethod'] 含义为:只有 `publicMethod` 在实例上可用
- */
- expose: [],
- methods: {
-
- },
-
-
- /**
- * 组件被创建,组件第一个生命周期,
- * 在内存中被占用的时候被调用,开发者可以在这里执行一些需要提前执行的初始化逻辑
- * [可选实现]
- */
- created() {
-
- },
- /**
- * 对应平台的view载体即将被创建,对应前端beforeMount
- * [可选实现]
- */
- NVBeforeLoad() {
-
- },
- /**
- * 创建原生View,必须定义返回值类型
- * 开发者需要重点实现这个函数,声明原生组件被创建出来的过程,以及最终生成的原生组件类型
- * [必须实现]
- */
- NVLoad() : UIView {
- let previewView = new UIView()
- previewView.tag = 9527
- return previewView
- },
-
- /**
- * 原生View已创建
- * [可选实现]
- */
- NVLoaded() {
-
- },
- /**
- * 原生View布局完成
- * [可选实现]
- */
- NVLayouted() {
- let previewView = this.$el as UIView;
- let cameraView = new CameraView(previewView, this, {
- resolution: this.resolution,
- frameSize: this.frameSize,
- devicePosition: this.position,
- flash: this.flash
- } as CameraConfig)
- CameraManager.getInstance().setCameraView(cameraView);
- },
- /**
- * 原生View将释放
- * [可选实现]
- */
- NVBeforeUnload() {
- let ret : Map = new Map();
- let detail : Map = new Map();
- detail.set("detail", ret)
- this.$emit("stop", detail);
-
- CameraManager.getInstance().getCameraView()?.unbindCamera()
- },
- /**
- * 原生View已释放,这里可以做释放View之后的操作
- * [可选实现]
- */
- NVUnloaded() {
- CameraManager.getInstance().dispose()
- },
- /**
- * 组件销毁
- * [可选实现]
- */
- unmounted() {
-
- }
- }
-/*
-
-
-*/
\ No newline at end of file
diff --git a/unpackage/dist/dev/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/interface.uts.ts b/unpackage/dist/dev/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/interface.uts.ts
deleted file mode 100644
index ae3b66f..0000000
--- a/unpackage/dist/dev/.tsc/app-android/uni_modules/Skin-cameraUTS/utssdk/interface.uts.ts
+++ /dev/null
@@ -1,214 +0,0 @@
-export type GeneralCallbackResult = {
- /** 错误信息 */
- errMsg : string
-}
-export type TakePhotoSuccessCallbackResult = {
- /** 照片文件的临时路径 (本地路径),安卓是jpg图片格式,ios是png */
- tempImagePath : string
- quality : string
- errMsg : string
-}
-/** 接口调用失败的回调函数 */
-export type TakePhotoFailCallback = (res : GeneralCallbackResult) => void
-/** 接口调用成功的回调函数 */
-export type TakePhotoSuccessCallback = (
- result : TakePhotoSuccessCallbackResult
-) => void
-
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type TakePhotoCompleteCallback = (res : GeneralCallbackResult) => void
-
-export type TakePhotoOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete ?: TakePhotoCompleteCallback
- /** 接口调用失败的回调函数 */
- fail ?: TakePhotoFailCallback
- /** 成像质量
- *
- * 可选值:
- * - 'high': 高质量;
- * - 'normal': 普通质量;
- * - 'low': 低质量;
- * - 'original': 原图; */
- quality ?: 'high' | 'normal' | 'low' | 'original'
- /**
- * 是否开启镜像 */
- selfieMirror ?: boolean
- /** 接口调用成功的回调函数 */
- success ?: TakePhotoSuccessCallback
-}
-
-
-export type SetZoomSuccessCallbackResult = {
- /** 实际设置的缩放级别。由于系统限制,某些机型可能无法设置成指定值,会改用最接近的可设值。 */
- zoom : number
- errMsg : string
-}
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type SetZoomCompleteCallback = (res : GeneralCallbackResult) => void
-/** 接口调用失败的回调函数 */
-export type SetZoomFailCallback = (res : GeneralCallbackResult) => void
-/** 接口调用成功的回调函数 */
-export type CameraContextSetZoomSuccessCallback = (
- result : SetZoomSuccessCallbackResult
-) => void
-
-export type CameraContextSetZoomOption = {
- /** 缩放级别,范围[1, maxZoom]。zoom 可取小数,精确到小数后一位。maxZoom 可在 bindinitdone 返回值中获取。 */
- zoom : number
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete ?: SetZoomCompleteCallback
- /** 接口调用失败的回调函数 */
- fail ?: SetZoomFailCallback
- /** 接口调用成功的回调函数 */
- success ?: CameraContextSetZoomSuccessCallback
-}
-
-export type StartRecordTimeoutCallbackResult = {
- /** 视频的文件的临时路径 (本地路径) */
- tempVideoPath : string
-}
-
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type StartRecordCompleteCallback = (res : GeneralCallbackResult) => void
-/** 接口调用失败的回调函数 */
-export type StartRecordFailCallback = (res : GeneralCallbackResult) => void
-/** 超过录制时长上限时会结束录像并触发此回调,录像异常退出时也会触发此回调 */
-export type StartRecordTimeoutCallback = (
- result : StartRecordTimeoutCallbackResult
-) => void
-/** 接口调用成功的回调函数 */
-export type CameraContextStartRecordSuccessCallback = (
- res : GeneralCallbackResult
-) => void
-export type CameraContextStartRecordOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete ?: StartRecordCompleteCallback
- /** 接口调用失败的回调函数 */
- fail ?: StartRecordFailCallback
- /**
- * 是否开启镜像 */
- selfieMirror ?: boolean
- /** 接口调用成功的回调函数 */
- success ?: CameraContextStartRecordSuccessCallback
- /**
- * 录制时长上限,单位为秒,最长不能超过 5 分钟 */
- timeout ?: number
- /** 超过录制时长上限时会结束录像并触发此回调,录像异常退出时也会触发此回调 */
- timeoutCallback ?: StartRecordTimeoutCallback
-}
-
-export type StopRecordSuccessCallbackResult = {
- /** 视频的文件的临时路径 (本地路径) */
- tempVideoPath : string
- errMsg : string
-}
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type StopRecordCompleteCallback = (res : GeneralCallbackResult) => void
-/** 接口调用失败的回调函数 */
-export type StopRecordFailCallback = (res : GeneralCallbackResult) => void
-/** 接口调用成功的回调函数 */
-export type CameraContextStopRecordSuccessCallback = (
- result : StopRecordSuccessCallbackResult
-) => void
-export type CameraContextStopRecordOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete ?: StopRecordCompleteCallback
- /** 启动视频压缩,压缩效果同`chooseVideo` */
- compressed ?: boolean
- /** 接口调用失败的回调函数 */
- fail ?: StopRecordFailCallback
- /** 接口调用成功的回调函数 */
- success ?: CameraContextStopRecordSuccessCallback
-}
-
-/** 回调函数 */
-export type OnCameraFrameCallback = (result : OnCameraFrameCallbackResult) => void
-export type OnCameraFrameCallbackResult = {
- /** 图像像素点数据,一维数组,每四项表示一个像素点的 rgba */
- data : any
- /** 图像数据矩形的高度 */
- height : number
- /** 图像数据矩形的宽度 */
- width : number
-}
-/** 接口调用成功的回调函数 */
-export type StartSuccessCallback = (res : GeneralCallbackResult) => void
-/** 接口调用失败的回调函数 */
-type StartFailCallback = (res : GeneralCallbackResult) => void
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-type StartCompleteCallback = (res : GeneralCallbackResult) => void
-export type CameraFrameListenerStartOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete ?: StartCompleteCallback
- /** 接口调用失败的回调函数 */
- fail ?: StartFailCallback
- /** 接口调用成功的回调函数 */
- success ?: StartSuccessCallback
- /** [Worker](https://developers.weixin.qq.com/miniprogram/dev/api/worker/Worker.html)
- *
- * 可选参数。如果需要在 iOS ExperimentalWorker 内监听摄像头帧数据,则需要传入对应 Worker 对象。详情 [Worker.getCameraFrameData](https://developers.weixin.qq.com/miniprogram/dev/api/worker/Worker.getCameraFrameData.html) */
- // worker ?: Worker
-}
-
-
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type StopCompleteCallback = (res : GeneralCallbackResult) => void
-/** 接口调用失败的回调函数 */
-export type StopFailCallback = (res : GeneralCallbackResult) => void
-/** 接口调用成功的回调函数 */
-export type StopSuccessCallback = (res : GeneralCallbackResult) => void
-export type StopOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete ?: StopCompleteCallback
- /** 接口调用失败的回调函数 */
- fail ?: StopFailCallback
- /** 接口调用成功的回调函数 */
- success ?: StopSuccessCallback
-}
-
-export type FlashMode = 'auto' | 'on' | 'off' | 'torch'
-export type DevicePosition = 'back' | 'front'
-export type Resolution = 'low' | 'medium' | 'high'
-export type FrameSize = 'medium' | 'small' | 'large'
-export type QualityType = 'high' | 'normal' | 'low' | 'original'
-
-
-export type CameraConfig = {
- flash ?: FlashMode
- devicePosition ?: DevicePosition
- resolution ?: Resolution
- frameSize ?: FrameSize
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type SwitchCompleteCallback = (res : GeneralCallbackResult) => void
-/** 接口调用失败的回调函数 */
-export type SwitchFailCallback = (res : GeneralCallbackResult) => void
-/** 接口调用成功的回调函数 */
-export type SwitchSuccessCallback = (res : GeneralCallbackResult) => void
-export type SwitchOption = {
- position : DevicePosition
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete ?: SwitchCompleteCallback
- /** 接口调用失败的回调函数 */
- fail ?: SwitchFailCallback
- /** 接口调用成功的回调函数 */
- success ?: SwitchSuccessCallback
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-export type OnCameraFrameListenerOption = {
- success ?: OnCameraFrameCallback
-}
-
-export type TakePhoto = (options : TakePhotoOption) => void
-export type SetZoom = (options : CameraContextSetZoomOption) => void
-export type StartRecord = (options : CameraContextStartRecordOption) => void
-export type StopRecord = (options : CameraContextStopRecordOption) => void
-export type OnCameraFrameListener = (options : OnCameraFrameListenerOption) => void
-export type StartCameraFrame = (options : CameraFrameListenerStartOption) => void
-export type StopCameraFrame = (options : StopOption) => void
-export type SwitchCamera = (options : SwitchOption) => void
\ No newline at end of file
diff --git a/unpackage/dist/dev/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-android/CameraManager.uts.ts b/unpackage/dist/dev/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-android/CameraManager.uts.ts
deleted file mode 100644
index fb0aafc..0000000
--- a/unpackage/dist/dev/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-android/CameraManager.uts.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { CameraView } from "./camera";
-
-export class CameraManager {
- private cameraView : CameraView | null = null;
-
- private static instance : CameraManager | null = null;
-
- public static getInstance() : CameraManager {
- if (CameraManager.instance == null) {
- CameraManager.instance = new CameraManager();
- }
- return CameraManager.instance!;
- }
-
- public setCameraView(cameraView ?: CameraView) : void {
- this.cameraView = cameraView!
- }
-
- public getCameraView() : CameraView | null {
- return this.cameraView;
- }
-
- public dispose() : void {
- this.cameraView = null;
- }
-}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-android/camera.uts.ts b/unpackage/dist/dev/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-android/camera.uts.ts
deleted file mode 100644
index e223355..0000000
--- a/unpackage/dist/dev/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-android/camera.uts.ts
+++ /dev/null
@@ -1,474 +0,0 @@
-import ProcessCameraProvider from 'androidx.camera.lifecycle.ProcessCameraProvider'
-import Preview from 'androidx.camera.core.Preview'
-import MirrorMode from 'androidx.camera.core.MirrorMode'
-import PreviewView from 'androidx.camera.view.PreviewView'
-import Context from 'android.content.Context'
-import FrameLayout from 'android.widget.FrameLayout'
-import ViewGroup from 'android.view.ViewGroup'
-import CameraSelector from 'androidx.camera.core.CameraSelector'
-import ImageAnalysis from 'androidx.camera.core.ImageAnalysis'
-import UseCaseGroup from 'androidx.camera.core.UseCaseGroup'
-import ContextCompat from 'androidx.core.content.ContextCompat'
-
-import LifecycleOwner from 'androidx.lifecycle.LifecycleOwner'
-import ImageCapture from 'androidx.camera.core.ImageCapture'
-import Size from 'android.util.Size'
-import ImageCaptureException from 'androidx.camera.core.ImageCaptureException'
-import File from 'java.io.File'
-
-import ImageProxy from 'androidx.camera.core.ImageProxy';
-import CameraControl from 'androidx.camera.core.CameraControl';
-
-import VideoCapture from 'androidx.camera.video.VideoCapture'
-import Recorder from 'androidx.camera.video.Recorder'
-import Recording from 'androidx.camera.video.Recording'
-import FileOutputOptions from 'androidx.camera.video.FileOutputOptions'
-import Quality from 'androidx.camera.video.Quality'
-import QualitySelector from 'androidx.camera.video.QualitySelector'
-import VideoRecordEvent from 'androidx.camera.video.VideoRecordEvent'
-
-// import Bitmap from 'android.graphics.Bitmap';
-// import FileOutputStream from 'java.io.FileOutputStream';
-// import MediaMetadataRetriever from 'android.media.MediaMetadataRetriever';
-
-import ExecutorService from 'java.util.concurrent.ExecutorService'
-import Executors from 'java.util.concurrent.Executors'
-import ImageFormat from 'android.graphics.ImageFormat';
-
-import {
- TakePhotoOption,
- GeneralCallbackResult,
- TakePhotoSuccessCallbackResult,
- CameraContextSetZoomOption,
- SetZoomSuccessCallbackResult,
- CameraContextStopRecordOption,
- CameraContextStartRecordOption,
- StartRecordTimeoutCallbackResult,
- StopRecordSuccessCallbackResult,
- OnCameraFrameCallback,
- OnCameraFrameCallbackResult,
- CameraFrameListenerStartOption,
- StopOption,
-
- CameraConfig,
- FlashMode,
- DevicePosition,
- Resolution,
- //FrameSize,
- QualityType,
- OnCameraFrameListenerOption
-} from '../interface'
-import Bitmap from "android.graphics.Bitmap";
-import FileOutputStream from "java.io.FileOutputStream";
-
-const FLASH_MODE_MAP = new Map([
- ['auto', ImageCapture.FLASH_MODE_AUTO],
- ['on', ImageCapture.FLASH_MODE_ON],
- ['torch', ImageCapture.FLASH_MODE_ON],
- ['off', ImageCapture.FLASH_MODE_OFF],
-])
-const DEVICE_POSITION_MAP = new Map([
- ['back', CameraSelector.LENS_FACING_BACK],
- ['front', CameraSelector.LENS_FACING_FRONT],
-])
-
-
-const RESOLUTION_MAP = new Map([
- ['low', Quality.LOWEST],
- ['medium', Quality.HD],
- ['high', Quality.HIGHEST],
-])
-
-const QUALITY_MAP = new Map([
- ["high", ImageCapture.CAPTURE_MODE_MAXIMIZE_QUALITY],
- ["low", ImageCapture.CAPTURE_MODE_MINIMIZE_LATENCY],
-])
-
-const MIRROR_MODE = new Map([
- [true, MirrorMode.MIRROR_MODE_ON],
- [false, MirrorMode.MIRROR_MODE_OFF],
-])
-
-export class CameraView extends FrameLayout {
- private previewView : PreviewView;
- public cameraProvider : ProcessCameraProvider | null = null;
- public cameraControl : CameraControl | null = null;
- private imageCapture : ImageCapture | null = null
- private videoCapture : VideoCapture | null = null
- private recording : Recording | null = null
- private comp : UTSComponent;
- private flashMode : FlashMode = 'auto'
- private devicePosition : DevicePosition = 'back'
- private resolution : Resolution = 'medium'
- // private frameSize : FrameSize = 'medium'
- private quality : QualityType = 'normal'
- private videoFile : File | null = null
- maxZoom : Float = (1).toFloat()
- minZoom : Float = (1).toFloat()
- private initialized : boolean = false
- private isListening : boolean = false
- private videoSelfieMirror : boolean | null = null
- private cameraContextStopRecordOption : CameraContextStopRecordOption | null = null
- private onCameraFrameCallback : OnCameraFrameCallback | null = null
- private cameraExecutor : ExecutorService | null = null
- private onCameraFrameListenerOption : OnCameraFrameListenerOption | null = null;
-
- constructor(context : Context, comp : UTSComponent, config : CameraConfig = {} as CameraConfig) {
- super(context);
- this.comp = comp
- this.flashMode = config.flash ?? 'auto'
- this.devicePosition = config.devicePosition ?? 'back'
- this.resolution = config.resolution ?? 'medium'
- // this.frameSize = config.frameSize ?? 'medium'
-
- this.previewView = new PreviewView(context);
- let layoutParam = new FrameLayout.LayoutParams(
- ViewGroup.LayoutParams.MATCH_PARENT,
- ViewGroup.LayoutParams.MATCH_PARENT);
- this.addView(this.previewView, layoutParam);
- this.setupCamera()
- }
- setupCamera() {
- // this.checkSelfPermission().then(() => {
- let cameraProviderFuture = ProcessCameraProvider.getInstance(UTSAndroid.getUniActivity()!)
- cameraProviderFuture.addListener(() => {
- try {
- this.cameraProvider = cameraProviderFuture.get()
- this.bindCamera();
- } catch (e) {
- let ret : Map = new Map();
- ret.set("errMsg", JSON.stringify(e))
- this.comp.$emit('error', ret)
- }
- }, ContextCompat.getMainExecutor(UTSAndroid.getUniActivity()!))
- // }).catch((err) => {
- // let ret : Map = new Map();
- // ret.set("errMsg", err ?? '权限不足')
- // this.comp.$emit('error', ret)
- // })
- }
- bindCamera() {
-
- let targetResolution = RESOLUTION_MAP.get(this.resolution) ?? Quality.HD;
- let captureMode = QUALITY_MAP.get(this.quality) ?? ImageCapture.CAPTURE_MODE_MAXIMIZE_QUALITY;
-
- // 创建一个Preview对象,用于显示相机预览
- let preview = new Preview.Builder()
- .build();
- preview.setSurfaceProvider(this.previewView.getSurfaceProvider());
-
- // 创建一个ImageCapture对象,用于拍照
- let imageCapture = new ImageCapture.Builder()
- .setFlashMode(FLASH_MODE_MAP.get(this.flashMode)!)
- .setCaptureMode(captureMode)
- .build();
- // 选择要使用的相机(后置或前置)
- let cameraSelector = new CameraSelector.Builder()
- .requireLensFacing(DEVICE_POSITION_MAP.get(this.devicePosition)!)
- .build();
-
- let recorder = Recorder.Builder()
- .setQualitySelector(QualitySelector.from(targetResolution))
- let mirrorMode = this.videoSelfieMirror == null ? MirrorMode.MIRROR_MODE_ON_FRONT_ONLY : MIRROR_MODE.get(this.videoSelfieMirror!);
- let videoCapture = new VideoCapture.Builder(recorder.build())
- .setMirrorMode(mirrorMode!)
- .build();
-
- this.videoCapture = videoCapture
-
- // 将参数应用到 VideoCapture
- this.imageCapture = imageCapture;
- this.cameraProvider!.unbindAll();
- let imageAnalysis = ImageAnalysis.Builder()
- // .setTargetResolution(new Size(1280, 720))
- .setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)
- .build()
-
- let viewPort = this.previewView.getViewPort()!
- let useCaseGroup = new UseCaseGroup.Builder()
- .addUseCase(preview)
- .addUseCase(imageAnalysis)
- .addUseCase(imageCapture)
- .addUseCase(videoCapture)
- .setViewPort(viewPort)
- .build();
-
- this.cameraExecutor = Executors.newSingleThreadExecutor()
- let _this = this
- class Analyzer implements ImageAnalysis.Analyzer {
- constructor() {
-
- }
- override analyze(image : ImageProxy) {
- if (_this.isListening) {
- let imageFormat = image.getFormat();
- // 获取图像的宽度和高度
- let width = image.width
- let height = image.height
-
- if (imageFormat == ImageFormat.YUV_420_888) {
- _this.onCameraFrameCallback?.({
- width,
- height,
- data: image
- } as OnCameraFrameCallbackResult)
-
- _this.onCameraFrameListenerOption?.success?.({
- width,
- height,
- data: image
- } as OnCameraFrameCallbackResult)
- }
- }
- image.close();
- }
- override getDefaultTargetResolution() : Size {
- // 返回默认的目标分辨率
- return Size(640, 480)
- }
- }
- imageAnalysis.setAnalyzer(this.cameraExecutor!, new Analyzer() as ImageAnalysis.Analyzer)
-
- let camera = this.cameraProvider!.bindToLifecycle(
- UTSAndroid.getUniActivity()! as LifecycleOwner,
- cameraSelector,
- useCaseGroup
- // preview,
- // imageCapture,
- // videoCapture
- );
- this.cameraControl = camera.getCameraControl();
- if (!this.initialized) {
- this.initialized = true
- let zoomState = camera.getCameraInfo().getZoomState().getValue();
- this.maxZoom = zoomState?.getMaxZoomRatio() ?? (1).toFloat();
- this.minZoom = zoomState?.getMinZoomRatio() ?? (1).toFloat();
- let maxZoom = this.maxZoom
-
- let ret : Map = new Map();
- ret.set("maxZoom", maxZoom)
- this.comp.$emit('ready', ret)
- }
-
- }
- unbindCamera() {
- this.cameraProvider?.unbindAll()
- this.cameraExecutor?.shutdown()
- }
- // checkSelfPermission() : Promise {
- // let permissionNeed = ["android.permission.CAMERA", "android.permission.RECORD_AUDIO", "android.permission.READ_EXTERNAL_STORAGE"]
- // return new Promise((resoleve, _) => {
- // resoleve(true);
- // UTSAndroid.requestSystemPermission(UTSAndroid.getUniActivity()!, permissionNeed, function (allRight : boolean, list : string[]) {
- // if (allRight) {
- // resoleve(true);
- // } else {
- // reject(list);
- // }
- // }, function (_ : boolean, grantedList : string[]) {
- // //grantedList
- // reject(grantedList);
- // })
- // })
- // }
- setConfig(config : CameraConfig = {} as CameraConfig) {
- this.flashMode = config.flash ?? 'auto'
- this.devicePosition = config.devicePosition ?? 'back'
- this.resolution = config.resolution ?? 'medium'
- // this.frameSize = config.frameSize ?? 'medium'
- }
- setFlash(mode : FlashMode) {
- this.flashMode = mode
- if (FLASH_MODE_MAP.get(mode) == null || this.imageCapture == null) return
- this.imageCapture!.setFlashMode(FLASH_MODE_MAP.get(mode)!)
- }
- switchCamera(position : DevicePosition) {
- this.devicePosition = position
- if (DEVICE_POSITION_MAP.get(position) == null || this.cameraProvider == null) return
- this.unbindCamera()
- this.bindCamera()
- }
- isResolutionSupported(context : Context, cameraSelector : CameraSelector, targetResolution : Size) : boolean {
- return true
- }
- takePhoto(option : TakePhotoOption) {
- let quality = option.quality ?? "high";
- this.quality = quality;
- if (quality == 'low') {
- this.unbindCamera()
- this.bindCamera()
- }
- // 设置输出目录
- let privateDir = UTSAndroid.getAppCachePath()!;
- const tempFile = new File(privateDir);
- if (!tempFile.exists()) {
- tempFile.mkdirs()
- }
- // 设置文件名
- const photoFile = new File(privateDir, Date.now() + '.png');
-
- // 处理镜像
- let metadata = new ImageCapture.Metadata();
- metadata.setReversedHorizontal(option.selfieMirror ?? DEVICE_POSITION_MAP.get(this.devicePosition)! == CameraSelector.LENS_FACING_FRONT);
-
- const outputOptions = ImageCapture.OutputFileOptions.Builder(photoFile).setMetadata(metadata).build()
- class OnImageSavedCallback implements ImageCapture.OnImageSavedCallback {
- override onImageSaved(outputFileResults : ImageCapture.OutputFileResults) {
- option.success?.({
- tempImagePath: photoFile.getAbsolutePath(),
- quality: quality,
- errMsg: 'ok'
- } as TakePhotoSuccessCallbackResult)
- option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- }
- override onError(err : ImageCaptureException) {
- const result : GeneralCallbackResult = {
- errMsg: err.toString()
- }
- option.fail?.(result)
- option.complete?.(result)
- }
- override onCaptureStarted() {
-
- }
- }
- this.imageCapture!.takePicture(outputOptions, ContextCompat.getMainExecutor(UTSAndroid.getUniActivity()!), new OnImageSavedCallback() as ImageCapture.OnImageSavedCallback)
-
- }
- setZoom(option : CameraContextSetZoomOption) {
- if (this.cameraControl != null) {
- try {
- this.cameraControl!.setZoomRatio(option.zoom.toFloat())
- option.success?.({
- zoom: option.zoom,
- errMsg: 'ok'
- } as SetZoomSuccessCallbackResult)
- option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- } catch (e) {
- const result : GeneralCallbackResult = {
- errMsg: e.toString()
- }
- option.complete?.(result)
- option.fail?.(result)
- }
- } else {
- const result : GeneralCallbackResult = {
- errMsg: '相机不存在'
- }
- option.complete?.(result)
- option.fail?.(result)
- }
- }
- startRecord(option : CameraContextStartRecordOption) {
- if (option.selfieMirror != null && this.videoSelfieMirror != option.selfieMirror) {
- this.videoSelfieMirror = option.selfieMirror
- this.unbindCamera()
- this.bindCamera()
- }
- if (this.recording != null || this.videoCapture == null) {
- option.fail?.({
- errMsg: '已经在录制或相机不存在'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '已经在录制或相机不存在'
- } as GeneralCallbackResult)
- return
- }
- // 设置输出目录
- let privateDir = UTSAndroid.getAppCachePath()!;
- // 设置文件名
- this.videoFile = new File(privateDir, Date.now() + 'video.mp4');
- let outputFileOptions = new FileOutputOptions.Builder(this.videoFile!).build();
-
-
- this.recording = this.videoCapture!.output
- .prepareRecording(UTSAndroid.getUniActivity()!, outputFileOptions)
- .withAudioEnabled()
- // .apply(()=>{
- // })
- .start(ContextCompat.getMainExecutor(UTSAndroid.getUniActivity()!), (recordEvent : VideoRecordEvent) => {
- if (recordEvent instanceof VideoRecordEvent.Start) {
- option.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
-
- if (option.timeout != null && option.timeout! > 0) {
- setTimeout(() => {
- this.recording?.stop()
- }, option.timeout!)
- }
- } else if (recordEvent instanceof VideoRecordEvent.Finalize) {
- this.recording?.close()
- this.recording = null
- let tempVideoPath = this.videoFile?.getAbsolutePath()!
- //let tempThumbPath = extractThumbnail(tempVideoPath) ?? ''
- this.cameraContextStopRecordOption?.success?.({
- tempVideoPath,
- errMsg: 'ok'
- } as StopRecordSuccessCallbackResult)
-
- option.timeoutCallback?.({
- tempVideoPath,
- } as StartRecordTimeoutCallbackResult)
- }
- })
- }
- stopRecord(option : CameraContextStopRecordOption) {
- if (this.recording == null) {
- option.fail?.({
- errMsg: '未开始录制'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未开始录制'
- } as GeneralCallbackResult)
- return
- }
- this.cameraContextStopRecordOption = option
- this.recording?.stop()
- }
- onCameraFrame(callback : OnCameraFrameCallback | null = null) {
- this.onCameraFrameCallback = callback
- }
-
- onCameraFrameListener(option : OnCameraFrameListenerOption) {
- this.onCameraFrameListenerOption = option
- }
-
- cameraFrameOnStart(option ?: CameraFrameListenerStartOption) {
- this.isListening = true
- option?.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- }
- cameraFrameOnStop(option ?: StopOption) {
- this.isListening = false
- option?.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- }
-
-}
-
-
-// // 从视频文件中提取封面的函数
-// function extractThumbnail(videoUri : string) : string | null {
-// let retriever = new MediaMetadataRetriever()
-// retriever.setDataSource(videoUri)
-// // 提取视频的某一帧作为封面
-// let thumbnail = retriever.frameAtTime
-// // 保存封面到文件
-// if (thumbnail != null) {
-// let privateDir = UTSAndroid.getAppCachePath();
-// const thumbnailFile = new File(privateDir, Date.now() + '_thumbnail.jpg');
-// let outputStream = FileOutputStream(thumbnailFile)
-// thumbnail.compress(Bitmap.CompressFormat.JPEG, 90, outputStream)
-// outputStream.close()
-// return thumbnailFile.getAbsolutePath()
-// }
-// retriever.release()
-// return null
-// }
\ No newline at end of file
diff --git a/unpackage/dist/dev/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-android/index.uts.ts b/unpackage/dist/dev/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-android/index.uts.ts
deleted file mode 100644
index 30f0623..0000000
--- a/unpackage/dist/dev/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-android/index.uts.ts
+++ /dev/null
@@ -1,252 +0,0 @@
-import { CameraView } from './camera'
-import {
- TakePhotoOption,
- GeneralCallbackResult,
- CameraContextSetZoomOption,
- CameraContextStartRecordOption,
- CameraContextStopRecordOption,
- // CameraFrameListener,
- OnCameraFrameCallback,
- // OnCameraFrameCallbackResult,
- CameraFrameListenerStartOption,
- StopOption,
- TakePhoto,
- SetZoom,
- StartRecord,
- StopRecord,
- StartCameraFrame,
- StopCameraFrame,
- OnCameraFrameListenerOption,
- SwitchOption,
- SwitchCamera
-} from '../interface'
-import { CameraManager } from "./CameraManager";
-
-
-class CameraFrameListener {
- context : CameraContext
- constructor(context : CameraContext) {
- this.context = context
- }
- start() : void
- start(option ?: CameraFrameListenerStartOption) {
- this.context.getCamera().then((camera : CameraView) => {
- camera.cameraFrameOnStart(option)
- })
- }
- stop() : void
- stop(option ?: StopOption) {
- this.context.getCamera().then((camera : CameraView) => {
- camera.cameraFrameOnStop(option)
- })
- }
-}
-
-class CameraContext {
- private mCameraFrameListener : CameraFrameListener | null = null
- constructor() {
- }
- getCamera() : Promise {
- let cameraPreview = CameraManager.getInstance().getCameraView()
- if (cameraPreview != null) {
- return Promise.resolve(cameraPreview);
- }
- let resolveFunc : ((res : CameraView) => void) | null = null
- let rejectFunc : ((res : string) => void) | null = null
-
- let maxAttempts : number = 5
- let currentAttempt : number = 0
-
- function attemptGetCamera() {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera !== null) {
- resolveFunc?.(camera)
- } else if (currentAttempt < maxAttempts) {
- currentAttempt++
- setTimeout(() => {
- attemptGetCamera()
- }, 100)
- } else {
- rejectFunc?.('Camera not found after multiple attempts')
- }
- }
- return new Promise((resolve, reject) => {
- resolveFunc = resolve
- rejectFunc = reject
- attemptGetCamera()
- })
- }
-
-
- takePhoto(option : TakePhotoOption) {
- this.getCamera().then((camera : CameraView) => {
- camera.takePhoto(option)
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- })
-
- }
- setZoom(option : CameraContextSetZoomOption) {
- this.getCamera().then((camera : CameraView) => {
- camera.setZoom(option)
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- })
- }
- startRecord(option : CameraContextStartRecordOption) {
- this.getCamera().then((camera : CameraView) => {
- camera.startRecord(option)
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- })
- }
- stopRecord(option : CameraContextStopRecordOption) {
- this.getCamera().then((camera : CameraView) => {
- camera.stopRecord(option)
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- })
- }
- onCameraFrame() : CameraFrameListener
- onCameraFrame(callback : OnCameraFrameCallback | null = null) : CameraFrameListener {
- if (this.mCameraFrameListener == null) {
- this.mCameraFrameListener = new CameraFrameListener(this)
- }
- this.getCamera().then((camera : CameraView) => {
- camera.onCameraFrame(callback)
- })
- return this.mCameraFrameListener!
- }
- //////////////////////////////////////////////////////
- onCameraFrameListener(option : OnCameraFrameListenerOption) {
- this.getCamera().then((camera : CameraView) => {
- camera.onCameraFrameListener(option)
- }).catch(() => {
- __f__('log','at uni_modules/Skin-cameraUTS/utssdk/app-android/index.uts:145',"未找到相机")
- })
- }
-
- cameraFrameOnStart(option : CameraFrameListenerStartOption) {
- this.getCamera().then((camera : CameraView) => {
- camera.cameraFrameOnStart(option)
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- })
- }
-
- cameraFrameOnStop(option : StopOption) {
- this.getCamera().then((camera : CameraView) => {
- camera.cameraFrameOnStop(option)
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- })
- }
-
- switchCamera(option : SwitchOption) {
- this.getCamera().then((camera : CameraView) => {
- camera.switchCamera(option.position)
-
- option.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- })
- }
-}
-
-let context : CameraContext = new CameraContext();
-
-export function createCameraContext() : CameraContext {
- return context;
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-
-export const takePhoto : TakePhoto = function (options : TakePhotoOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.takePhoto(options)
- }, null)
-}
-
-export const setZoom : SetZoom = function (options : CameraContextSetZoomOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.setZoom(options)
- }, null)
-}
-
-export const startRecord : StartRecord = function (options : CameraContextStartRecordOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.startRecord(options)
- }, null)
-}
-
-export const stopRecord : StopRecord = function (options : CameraContextStopRecordOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.stopRecord(options)
- }, null)
-}
-
-@UTSJS.keepAlive
-export function onCameraFrameListener(options : OnCameraFrameListenerOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.onCameraFrameListener(options)
- }, null)
-}
-
-export const startCameraFrame : StartCameraFrame = function (options : CameraFrameListenerStartOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.cameraFrameOnStart(options)
- }, null)
-}
-
-export const stopCameraFrame : StopCameraFrame = function (options : StopOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.cameraFrameOnStop(options)
- }, null)
-}
-
-
-export const switchCamera : SwitchCamera = function (options : SwitchOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.switchCamera(options)
- }, null)
-}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-android/index.vue.ts b/unpackage/dist/dev/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-android/index.vue.ts
deleted file mode 100644
index 4f8e72c..0000000
--- a/unpackage/dist/dev/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-android/index.vue.ts
+++ /dev/null
@@ -1,151 +0,0 @@
-//
-//
-//
-//
-//
-
- import { CameraView } from './camera';
- import { CameraConfig } from '../interface'
- import { CameraManager } from './CameraManager';
-
- //原生提供以下属性或方法的实现
- export default {
- /**
- * 组件名称,也就是开发者使用的标签
- */
- name: "xf-camera",
- /**
- * 组件涉及的事件声明,只有声明过的事件,才能被正常发送
- */
- emits: ['stop', 'error', 'ready'],
- /**
- * 属性声明,组件的使用者会传递这些属性值到组件
- */
- props: {
- "mode": {
- type: String,
- default: "normal"
- },
- "resolution": {
- type: String,
- default: "medium" // low | high
- },
- "position": {
- type: String,
- default: "back" // front前置 |back 后置
- },
- "flash": {
- type: String,
- default: "auto" // auto, on, off, torch
- },
- "frameSize": {
- type: String,
- default: "medium" // small|large
- }
- },
- /**
- * 组件内部变量声明
- */
- data() {
- return {}
- },
- /**
- * 属性变化监听器实现
- */
- watch: {
- "position": {
- /**
- * 这里监听属性变化,并进行组件内部更新
- */
- handler(newValue : string, _ : string) {
- this.$el?.switchCamera(newValue)
- },
- immediate: false // 创建时是否通过此方法更新属性,默认值为false
- },
- "flash": {
- /**
- * 这里监听属性变化,并进行组件内部更新
- */
- handler(newValue : string, _ : string) {
- this.$el?.setFlash(newValue)
- },
- immediate: false // 创建时是否通过此方法更新属性,默认值为false
-
- }
- },
- /**
- * 规则:如果没有配置expose,则methods中的方法均对外暴露,如果配置了expose,则以expose的配置为准向外暴露
- * ['publicMethod'] 含义为:只有 `publicMethod` 在实例上可用
- */
- expose: [],
- methods: {
-
- },
- /**
- * [可选实现] 组件被创建,组件第一个生命周期,
- * 在内存中被占用的时候被调用,开发者可以在这里执行一些需要提前执行的初始化逻辑
- */
- created() {
-
- },
- /**
- * [可选实现] 对应平台的view载体即将被创建,对应前端beforeMount
- */
- NVBeforeLoad() {
-
- },
- /**
- * [必须实现] 创建原生View,必须定义返回值类型
- * 开发者需要重点实现这个函数,声明原生组件被创建出来的过程,以及最终生成的原生组件类型
- * (Android需要明确知道View类型,需特殊校验)
- */
- NVLoad() : CameraView {
- let previewView = new CameraView(this.$androidContext!, this)
- previewView.setTag("9527");
- CameraManager.getInstance().setCameraView(previewView);
- return previewView
-
- },
- /**
- * [可选实现] 原生View已创建
- */
- NVLoaded() {
-
- },
- /**
- * [可选实现] 原生View布局完成
- */
- NVLayouted() {
- this.$el?.setConfig({
- resolution: this.resolution,
- frameSize: this.frameSize,
- flash: this.flash
- } as CameraConfig)
- this.$el?.switchCamera(this.position)
- },
- /**
- * [可选实现] 原生View将释放
- */
- NVBeforeUnload() {
- let ret : Map = new Map();
- this.$emit('stop', ret)
-
- this.$el?.unbindCamera()
- },
- /**
- * [可选实现] 原生View已释放,这里可以做释放View之后的操作
- */
- NVUnloaded() {
- CameraManager.getInstance().dispose();
- },
- /**
- * [可选实现] 组件销毁
- */
- unmounted() {
-
- },
- }
-/*
-
-
-*/
\ No newline at end of file
diff --git a/unpackage/dist/dev/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/CameraManager.uts.ts b/unpackage/dist/dev/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/CameraManager.uts.ts
deleted file mode 100644
index fb0aafc..0000000
--- a/unpackage/dist/dev/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/CameraManager.uts.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { CameraView } from "./camera";
-
-export class CameraManager {
- private cameraView : CameraView | null = null;
-
- private static instance : CameraManager | null = null;
-
- public static getInstance() : CameraManager {
- if (CameraManager.instance == null) {
- CameraManager.instance = new CameraManager();
- }
- return CameraManager.instance!;
- }
-
- public setCameraView(cameraView ?: CameraView) : void {
- this.cameraView = cameraView!
- }
-
- public getCameraView() : CameraView | null {
- return this.cameraView;
- }
-
- public dispose() : void {
- this.cameraView = null;
- }
-}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/camera.uts.ts b/unpackage/dist/dev/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/camera.uts.ts
deleted file mode 100644
index a8f7c14..0000000
--- a/unpackage/dist/dev/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/camera.uts.ts
+++ /dev/null
@@ -1,469 +0,0 @@
-import { UIImage, UIView } from 'UIKit';
-import { AVCaptureDevice, AVCaptureDeviceInput, AVCaptureSession, AVCaptureVideoPreviewLayer, AVMediaType, AVLayerVideoGravity, AVCaptureVideoDataOutput, AVCaptureVideoDataOutputSampleBufferDelegate, AVCaptureOutput, AVCaptureConnection, AVCapturePhotoOutput, AVCapturePhotoSettings, AVCapturePhotoCaptureDelegate, AVCaptureMovieFileOutput, AVCaptureFileOutputRecordingDelegate, AVCaptureFileOutput } from "AVFoundation";
-import { CMSampleBuffer, CMSampleBufferGetImageBuffer } from 'CoreMedia';
-import { DispatchQueue } from 'Dispatch';
-import { CVPixelBufferGetWidth, CVPixelBufferGetHeight } from "CoreVideo";
-import { NSError, URL } from "Foundation";
-
-import {
- TakePhotoOption,
- GeneralCallbackResult,
- TakePhotoSuccessCallbackResult,
- CameraContextSetZoomOption,
- SetZoomSuccessCallbackResult,
- CameraContextStopRecordOption,
- CameraContextStartRecordOption,
- StartRecordTimeoutCallbackResult,
- StopRecordSuccessCallbackResult,
- OnCameraFrameCallback,
- OnCameraFrameCallbackResult,
- OnCameraFrameListenerOption,
- CameraFrameListenerStartOption,
- StopOption,
-
- CameraConfig,
- FlashMode,
- DevicePosition,
- Resolution
-} from '../interface'
-import { AVCapturePhoto } from 'AVFoundation';
-
-
-
-const RESOLUTION_MAP = new Map([
- ['low', AVCaptureSession.Preset.low],
- ['medium', AVCaptureSession.Preset.medium],
- ['high', AVCaptureSession.Preset.high],
-])
-
-const FLASH_MODE_MAP = new Map([
- ['auto', AVCaptureDevice.TorchMode.auto],
- ['on', AVCaptureDevice.TorchMode.on],
- ['torch', AVCaptureDevice.TorchMode.on],
- ['off', AVCaptureDevice.TorchMode.off],
-])
-
-
-let fileOutputRecordingDelegate : MyAVCaptureFileOutputRecordingDelegate | null = null;
-let capturePhotoCaptureDelegate : MyAVCapturePhotoCaptureDelegate | null = null;
-let onCameraFrameListenerOption : OnCameraFrameListenerOption | null = null;
-let cameraContextStopRecordOption : CameraContextStopRecordOption | null = null;
-
-class MyAVCaptureFileOutputRecordingDelegate implements AVCaptureFileOutputRecordingDelegate {
- private option : CameraContextStartRecordOption;
-
- constructor(option : CameraContextStartRecordOption) {
- this.option = option;
- }
-
- fileOutput(output : AVCaptureFileOutput, @argumentLabel("didStartRecordingTo") fileURL : URL, @argumentLabel("from") connections : [AVCaptureConnection]) : void {
- this.option.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- }
-
- fileOutput(output : AVCaptureFileOutput, @argumentLabel("didFinishRecordingTo") outputFileURL : URL, @argumentLabel("from") connections : [AVCaptureConnection], @argumentLabel("error") error ?: NSError) : void {
- if (error == null) {
- cameraContextStopRecordOption?.success?.({
- tempVideoPath: outputFileURL.path + "",
- errMsg: 'ok'
- } as StopRecordSuccessCallbackResult)
-
- this.option.timeoutCallback?.({
- tempVideoPath: outputFileURL.path + ""
- } as StartRecordTimeoutCallbackResult)
- } else {
- cameraContextStopRecordOption?.fail?.({
- errMsg: '录制失败'
- } as GeneralCallbackResult)
- cameraContextStopRecordOption?.complete?.({
- errMsg: '录制失败'
- } as GeneralCallbackResult)
- }
-
- }
-
-}
-
-class MyAVCapturePhotoCaptureDelegate implements AVCapturePhotoCaptureDelegate {
- private option : TakePhotoOption;
-
- constructor(option : TakePhotoOption) {
- this.option = option;
- }
-
- captureOutput(output : AVCapturePhotoOutput, @argumentLabel("didFinishProcessingPhoto") photo : AVCapturePhoto, @argumentLabel("error") error : Error) : void {
- let imageData = photo.fileDataRepresentation()
- if (imageData == null) {
- const result : GeneralCallbackResult = {
- errMsg: "拍照失败"
- }
- this.option.fail?.(result)
- this.option.complete?.(result)
- return;
- }
- let path = UTSiOS.getDataPath() + (new Date().getTime()).toString() + ".jpg";
- let url = new URL(fileURLWithPath = path);
-
- let quality = this.option.quality ?? "original"
- if (quality == 'original') {
- try {
- UTSiOS.try(imageData!.write(to = url, options = NSData.WritingOptions.atomic))
-
- this.option.success?.({
- tempImagePath: path,
- quality: quality,
- errMsg: 'ok'
- } as TakePhotoSuccessCallbackResult)
- this.option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- } catch (e) {
- const result : GeneralCallbackResult = {
- errMsg: JSON.stringify(e)
- }
- this.option.fail?.(result)
- this.option.complete?.(result)
- }
- } else {
- let image = UIImage(data = imageData!)
- if (image != null) {
- let _quality : number = 0.5;
- if (quality == 'high') {
- _quality = 1.0;
- } else if (quality == 'normal') {
- _quality = 0.8;
- } else if (quality == 'low') {
- _quality = 0.5;
- }
- let data = image!.jpegData(compressionQuality = _quality.toDouble())!
-
- try {
- UTSiOS.try(data.write(to = url, options = NSData.WritingOptions.atomic))
-
- this.option.success?.({
- tempImagePath: path,
- quality: quality,
- errMsg: 'ok'
- } as TakePhotoSuccessCallbackResult)
- this.option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- } catch (e) {
- const result : GeneralCallbackResult = {
- errMsg: JSON.stringify(e)
- }
- this.option.fail?.(result)
- this.option.complete?.(result)
- }
- } else {
- const result : GeneralCallbackResult = {
- errMsg: "拍照失败"
- }
- this.option.fail?.(result)
- this.option.complete?.(result)
- }
- }
- }
-
-}
-
-export class CameraView implements AVCaptureVideoDataOutputSampleBufferDelegate {
-
- private captureSession ?: AVCaptureSession;
- private videoDeviceInput ?: AVCaptureDeviceInput;
- private photoDeviceOutput ?: AVCapturePhotoOutput;
- private movieDeviceOutput ?: AVCaptureMovieFileOutput;
- private previewLayer ?: AVCaptureVideoPreviewLayer;
- private previewView ?: UIView;
- private comp ?: UTSComponent;
- private flashMode : FlashMode = 'auto'
- private devicePosition : DevicePosition = 'back'
- private resolution : Resolution = 'medium'
- private isListening : boolean = false
- private onCameraFrameCallback : OnCameraFrameCallback | null = null;
-
- constructor(previewView : UIView, comp : UTSComponent, config : CameraConfig = {} as CameraConfig) {
- super.init();
- this.previewView = previewView
- this.comp = comp
- this.flashMode = config.flash ?? 'auto'
- this.devicePosition = config.devicePosition ?? 'back'
- this.resolution = config.resolution ?? 'medium'
- this.setupCamera();
- }
-
- setupCamera() {
- this.captureSession = new AVCaptureSession();
- let targetResolution = RESOLUTION_MAP.get(this.resolution) ?? AVCaptureSession.Preset.high;
- this.captureSession!.sessionPreset = targetResolution;
- let device = this.getCameraDevice();
- try {
- //相机
- let deviceInput = UTSiOS.try(new AVCaptureDeviceInput(device = device))
- if (this.captureSession!.canAddInput(deviceInput)) {
- this.captureSession!.addInput(deviceInput);
- }
- //实时流输出
- let output = new AVCaptureVideoDataOutput();
- output.setSampleBufferDelegate(this, queue = DispatchQueue.main);
- if (this.captureSession!.canAddOutput(output)) {
- this.captureSession!.addOutput(output);
- }
-
- let photoOutput = new AVCapturePhotoOutput();
- // let photoSettings = new AVCapturePhotoSettings(format = [AVVideoCodecKey = AVVideoCodecType.jpeg]);
- // photoOutput.setPreparedPhotoSettingsArray([photoSettings], completionHandler = null);
- if (this.captureSession!.canAddOutput(photoOutput)) {
- this.captureSession!.addOutput(photoOutput);
- }
-
- let movieOutput = new AVCaptureMovieFileOutput();
- if (this.captureSession!.canAddOutput(movieOutput)) {
- this.captureSession!.addOutput(movieOutput);
- }
-
- this.videoDeviceInput = deviceInput;
- this.photoDeviceOutput = photoOutput;
- this.movieDeviceOutput = movieOutput;
- this.previewLayer = new AVCaptureVideoPreviewLayer(session = this.captureSession!)
- this.previewLayer!.videoGravity = AVLayerVideoGravity.resizeAspectFill;
- this.previewLayer!.frame = this.previewView!.layer.bounds;
- this.previewView!.layer.addSublayer(this.previewLayer!)
- this.captureSession!.startRunning();
-
- let ret : Map = new Map();
- ret.set("maxZoom", device.maxAvailableVideoZoomFactor)
- let detail : Map = new Map();
- detail.set("detail", ret)
- this.comp?.$emit("ready", detail);
- } catch (e) {
- let ret : Map = new Map();
- ret.set("errMsg", JSON.stringify(e))
- let detail : Map = new Map();
- detail.set("detail", ret)
- this.comp?.$emit("error", detail);
- }
- }
-
- getCameraDevice() : AVCaptureDevice {
- let cameras = AVCaptureDevice.devices(for = AVMediaType.video)
- let frontCamera : AVCaptureDevice | null = null;
- let backCamera : AVCaptureDevice | null = null;
-
- let index = 0;
- while (index < cameras.length) {
- if (index == cameras.length) {
- break;
- }
- let camera = cameras[index.toInt()] as AVCaptureDevice;
- if (camera.position == AVCaptureDevice.Position.back) {
- backCamera = camera;
- } else {
- frontCamera = camera;
- }
- index++;
- }
-
- if (this.devicePosition == 'back') {
- return backCamera!;
- } else {
- return frontCamera!;
- }
- }
-
- captureOutput(output : AVCaptureOutput, @argumentLabel("didOutput") sampleBuffer : CMSampleBuffer, @argumentLabel("from") connection : AVCaptureConnection) : void {
-
- if (this.isListening) {
- let imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer)
- let width = CVPixelBufferGetWidth(imageBuffer!)
- let height = CVPixelBufferGetHeight(imageBuffer!);
-
- const res : OnCameraFrameCallbackResult = {
- width: width as Int,
- height: height as Int,
- data: imageBuffer!
- };
- this.onCameraFrameCallback?.(res)
- onCameraFrameListenerOption?.success?.({
- width: width as Int,
- height: height as Int,
- data: imageBuffer!
- } as OnCameraFrameCallbackResult)
-
- // this.onCameraFrameListenerOption?.success({
- // width: width as Int,
- // height: height as Int,
- // data: imageBuffer!
- // } as OnCameraFrameCallbackResult)
-
-
- // if (imageBuffer != null) {
- // let ciImage = new CIImage(cvPixelBuffer = imageBuffer!)
- // let temporaryContext = new CIContext(options = null)
- // let width = CVPixelBufferGetWidth(imageBuffer!)
- // let height = CVPixelBufferGetHeight(imageBuffer!);
- // let videoImage = temporaryContext.createCGImage(ciImage, from = new CGRect(x = 0, y = 0, width = width, height = height))
- // let image = new UIImage(cgImage = videoImage!)
-
- // this.onCameraFrameCallback?.({
- // width: width as Int,
- // height: height as Int,
- // data: image
- // } as OnCameraFrameCallbackResult)
- // }
- }
- }
-
- bindCamera() {
- this.captureSession!.startRunning();
- }
-
-
- unbindCamera() {
- this.captureSession!.stopRunning();
- }
-
-
- setConfig(config : CameraConfig = {} as CameraConfig) {
- this.flashMode = config.flash ?? 'auto'
- this.devicePosition = config.devicePosition ?? 'back'
- this.resolution = config.resolution ?? 'medium'
- }
-
- setFlash(mode : FlashMode) {
- this.flashMode = mode
- let targetFlash = FLASH_MODE_MAP.get(this.flashMode) ?? AVCaptureDevice.TorchMode.auto;
- try {
- let device = this.getCameraDevice();
- if (device.hasTorch && device.isTorchAvailable) {
- UTSiOS.try(device.lockForConfiguration());
- device.torchMode = targetFlash;
- device.unlockForConfiguration()
- }
- } catch (e) {
- __f__('log','at uni_modules/Skin-cameraUTS/utssdk/app-ios/camera.uts:345',e)
- }
- }
-
-
- switchCamera(position : DevicePosition) {
- if (!this.captureSession!.isRunning) {
- return;
- }
- this.devicePosition = position;
- try {
- this.captureSession!.beginConfiguration();
- this.captureSession!.removeInput(this.videoDeviceInput!);
- let device = this.getCameraDevice();
-
- let deviceInput = UTSiOS.try(new AVCaptureDeviceInput(device = device))
- this.captureSession!.addInput(deviceInput);
- this.videoDeviceInput = deviceInput;
- this.captureSession!.commitConfiguration();
- } catch (e) {
- __f__('log','at uni_modules/Skin-cameraUTS/utssdk/app-ios/camera.uts:365',e)
- }
- }
-
- takePhoto(option : TakePhotoOption) {
- capturePhotoCaptureDelegate = new MyAVCapturePhotoCaptureDelegate(option);
- let settings = new AVCapturePhotoSettings()
- this.photoDeviceOutput?.capturePhoto(with = settings, delegate = capturePhotoCaptureDelegate!);
- }
-
-
- setZoom(option : CameraContextSetZoomOption) {
- try {
- let device = this.getCameraDevice();
- // if (device.isRampingVideoZoom) {
- UTSiOS.try(device.lockForConfiguration());
- device.videoZoomFactor = option.zoom.toDouble();
- device.unlockForConfiguration()
-
- option.success?.({
- zoom: option.zoom,
- errMsg: 'ok'
- } as SetZoomSuccessCallbackResult)
- option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- // } else {
- // const result : GeneralCallbackResult = {
- // errMsg: '相机不支持缩放'
- // }
- // option.complete?.(result)
- // option.fail?.(result)
- // }
- } catch (e) {
- const result : GeneralCallbackResult = {
- errMsg: JSON.stringify(e)
- }
- option.complete?.(result)
- option.fail?.(result)
- }
- }
-
- startRecord(option : CameraContextStartRecordOption) {
- let isRecording = this.movieDeviceOutput?.isRecording ?? false;
- if (isRecording) {
- option.fail?.({
- errMsg: '已经在录制或相机不存在'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '已经在录制或相机不存在'
- } as GeneralCallbackResult)
- return
- }
-
- fileOutputRecordingDelegate = new MyAVCaptureFileOutputRecordingDelegate(option);
- let path = UTSiOS.getDataPath() + (new Date().getTime()).toString() + ".mp4";
- let url = new URL(fileURLWithPath = path);
- this.movieDeviceOutput?.startRecording(to = url, recordingDelegate = fileOutputRecordingDelegate!);
-
- if (option.timeout != null && option.timeout! > 0) {
- setTimeout(() => {
- this.movieDeviceOutput?.stopRecording();
- }, (option.timeout!).toInt())
- }
- }
-
-
- stopRecord(option : CameraContextStopRecordOption) {
- let isRecording = this.movieDeviceOutput?.isRecording ?? false;
- if (!isRecording) {
- option.fail?.({
- errMsg: '未开始录制'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未开始录制'
- } as GeneralCallbackResult)
- return
- }
- cameraContextStopRecordOption = option;
- this.movieDeviceOutput?.stopRecording();
- }
-
-
- onCameraFrame(callback : OnCameraFrameCallback | null = null) {
- this.onCameraFrameCallback = callback
- }
-
- onCameraFrameListener(option : OnCameraFrameListenerOption) {
- onCameraFrameListenerOption = option
- }
-
- cameraFrameOnStart(option ?: CameraFrameListenerStartOption) {
- this.isListening = true
- option?.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- }
-
- cameraFrameOnStop(option ?: StopOption) {
- this.isListening = false
- option?.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- }
-}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.uts.ts b/unpackage/dist/dev/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.uts.ts
deleted file mode 100644
index b254595..0000000
--- a/unpackage/dist/dev/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.uts.ts
+++ /dev/null
@@ -1,207 +0,0 @@
-import {
- TakePhotoOption,
- GeneralCallbackResult,
- CameraContextSetZoomOption,
- CameraContextStartRecordOption,
- CameraContextStopRecordOption,
- OnCameraFrameCallback,
- CameraFrameListenerStartOption,
- StopOption,
- TakePhoto,
- SetZoom,
- StartRecord,
- StopRecord,
- StartCameraFrame,
- StopCameraFrame,
- OnCameraFrameListenerOption,
- SwitchCamera,
- SwitchOption
-} from '../interface'
-import { CameraManager } from './CameraManager';
-
-class CameraFrameListener {
- context : CameraContext
- constructor(context : CameraContext) {
- this.context = context
- }
- start() : void
- start(option ?: CameraFrameListenerStartOption) {
- CameraManager.getInstance().getCameraView()?.cameraFrameOnStart(option)
- }
- stop() : void
- stop(option ?: StopOption) {
- CameraManager.getInstance().getCameraView()?.cameraFrameOnStop(option)
- }
-}
-
-class CameraContext {
- private mCameraFrameListener : CameraFrameListener | null = null
-
- constructor() {
-
- }
-
- takePhoto(option : TakePhotoOption) {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- return;
- }
- camera?.takePhoto(option)
- }
-
- setZoom(option : CameraContextSetZoomOption) {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- return;
- }
-
- camera?.setZoom(option)
- }
-
- startRecord(option : CameraContextStartRecordOption) {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- return;
- }
- camera?.startRecord(option)
- }
-
- stopRecord(option : CameraContextStopRecordOption) {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- return;
- }
- camera?.stopRecord(option)
- }
-
- onCameraFrame() : CameraFrameListener
- onCameraFrame(callback : OnCameraFrameCallback | null = null) : CameraFrameListener {
- if (this.mCameraFrameListener == null) {
- this.mCameraFrameListener = new CameraFrameListener(this)
- }
- CameraManager.getInstance().getCameraView()?.onCameraFrame(callback)
- return this.mCameraFrameListener!
- }
- //////////////////////////////////////////////////////
- onCameraFrameListener(option : OnCameraFrameListenerOption) {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera == null) {
- return;
- }
- camera?.onCameraFrameListener(option)
- }
-
- cameraFrameOnStart(option : CameraFrameListenerStartOption) {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- return;
- }
- camera?.cameraFrameOnStart(option)
- }
-
- cameraFrameOnStop(option : StopOption) {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- return;
- }
- camera?.cameraFrameOnStop(option)
- }
-
- switchCamera(option : SwitchOption) {
- let camera = CameraManager.getInstance().getCameraView()
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult)
- return;
- }
- camera?.switchCamera(option.position)
-
- option.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult)
- }
-}
-
-let context : CameraContext = new CameraContext();
-
-export function createCameraContext() : CameraContext {
- return context;
-}
-
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-export const takePhoto : TakePhoto = function (options : TakePhotoOption) {
- context.takePhoto(options)
-}
-
-export const setZoom : SetZoom = function (options : CameraContextSetZoomOption) {
- context.setZoom(options)
-}
-
-export const startRecord : StartRecord = function (options : CameraContextStartRecordOption) {
- context.startRecord(options)
-}
-
-export const stopRecord : StopRecord = function (options : CameraContextStopRecordOption) {
- context.stopRecord(options)
-}
-
-@UTSJS.keepAlive
-export function onCameraFrameListener(options : OnCameraFrameListenerOption) {
- context.onCameraFrameListener(options)
-}
-
-export const startCameraFrame : StartCameraFrame = function (options : CameraFrameListenerStartOption) {
- context.cameraFrameOnStart(options)
-}
-
-export const stopCameraFrame : StopCameraFrame = function (options : StopOption) {
- context.cameraFrameOnStop(options)
-}
-
-export const switchCamera : SwitchCamera = function (options : SwitchOption) {
- context.switchCamera(options)
-}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.vue.ts b/unpackage/dist/dev/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.vue.ts
deleted file mode 100644
index 2a804f7..0000000
--- a/unpackage/dist/dev/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.vue.ts
+++ /dev/null
@@ -1,166 +0,0 @@
-//
-//
-//
-//
-
- import { UIView } from "UIKit"
- import { CameraView } from "./camera";
- import { CameraConfig } from '../interface'
- import { CameraManager } from "./CameraManager";
-
- //原生提供以下属性或方法的实现
- export default {
- data() {
- return {
- };
- },
- /**
- * 组件名称,也就是开发者使用的标签
- */
- name: "xf-camera",
- /**
- * 组件涉及的事件声明,只有声明过的事件,才能被正常发送
- */
- emits: ['stop', 'error', 'ready'],
- /**
- * 属性声明,组件的使用者会传递这些属性值到组件
- */
- props: {
- "mode": {
- type: String,
- default: "normal"
- },
- "resolution": {
- type: String,
- default: "medium" // low | high
- },
- "position": {
- type: String,
- default: "back" // front前置 |back 后置
- },
- "flash": {
- type: String,
- default: "auto" // auto, on, off, torch
- },
- "frameSize": {
- type: String,
- default: "medium" // small|large
- }
- },
- /**
- * 属性变化监听器实现
- */
- watch: {
- "position": {
- /**
- * 这里监听属性变化,并进行组件内部更新
- */
- handler(newValue : String, _oldValue : String) {
- CameraManager.getInstance().getCameraView()?.switchCamera(newValue)
- },
- /**
- * 创建时是否通过此方法更新属性,默认值为false
- */
- immediate: false
- },
- "flash": {
- /**
- * 这里监听属性变化,并进行组件内部更新
- */
- handler(newValue : String, _oldValue : String) {
- CameraManager.getInstance().getCameraView()?.setFlash(newValue)
- },
- /**
- * 创建时是否通过此方法更新属性,默认值为false
- */
- immediate: false
- }
- },
- /**
- * 规则:如果没有配置expose,则methods中的方法均对外暴露,如果配置了expose,则以expose的配置为准向外暴露
- * ['publicMethod'] 含义为:只有 `publicMethod` 在实例上可用
- */
- expose: [],
- methods: {
-
- },
-
-
- /**
- * 组件被创建,组件第一个生命周期,
- * 在内存中被占用的时候被调用,开发者可以在这里执行一些需要提前执行的初始化逻辑
- * [可选实现]
- */
- created() {
-
- },
- /**
- * 对应平台的view载体即将被创建,对应前端beforeMount
- * [可选实现]
- */
- NVBeforeLoad() {
-
- },
- /**
- * 创建原生View,必须定义返回值类型
- * 开发者需要重点实现这个函数,声明原生组件被创建出来的过程,以及最终生成的原生组件类型
- * [必须实现]
- */
- NVLoad() : UIView {
- let previewView = new UIView()
- previewView.tag = 9527
- return previewView
- },
-
- /**
- * 原生View已创建
- * [可选实现]
- */
- NVLoaded() {
-
- },
- /**
- * 原生View布局完成
- * [可选实现]
- */
- NVLayouted() {
- let previewView = this.$el as UIView;
- let cameraView = new CameraView(previewView, this, {
- resolution: this.resolution,
- frameSize: this.frameSize,
- devicePosition: this.position,
- flash: this.flash
- } as CameraConfig)
- CameraManager.getInstance().setCameraView(cameraView);
- },
- /**
- * 原生View将释放
- * [可选实现]
- */
- NVBeforeUnload() {
- let ret : Map = new Map();
- let detail : Map = new Map();
- detail.set("detail", ret)
- this.$emit("stop", detail);
-
- CameraManager.getInstance().getCameraView()?.unbindCamera()
- },
- /**
- * 原生View已释放,这里可以做释放View之后的操作
- * [可选实现]
- */
- NVUnloaded() {
- CameraManager.getInstance().dispose()
- },
- /**
- * 组件销毁
- * [可选实现]
- */
- unmounted() {
-
- }
- }
-/*
-
-
-*/
\ No newline at end of file
diff --git a/unpackage/dist/dev/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/interface.uts.ts b/unpackage/dist/dev/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/interface.uts.ts
deleted file mode 100644
index ae3b66f..0000000
--- a/unpackage/dist/dev/.tsc/app-ios/uni_modules/Skin-cameraUTS/utssdk/interface.uts.ts
+++ /dev/null
@@ -1,214 +0,0 @@
-export type GeneralCallbackResult = {
- /** 错误信息 */
- errMsg : string
-}
-export type TakePhotoSuccessCallbackResult = {
- /** 照片文件的临时路径 (本地路径),安卓是jpg图片格式,ios是png */
- tempImagePath : string
- quality : string
- errMsg : string
-}
-/** 接口调用失败的回调函数 */
-export type TakePhotoFailCallback = (res : GeneralCallbackResult) => void
-/** 接口调用成功的回调函数 */
-export type TakePhotoSuccessCallback = (
- result : TakePhotoSuccessCallbackResult
-) => void
-
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type TakePhotoCompleteCallback = (res : GeneralCallbackResult) => void
-
-export type TakePhotoOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete ?: TakePhotoCompleteCallback
- /** 接口调用失败的回调函数 */
- fail ?: TakePhotoFailCallback
- /** 成像质量
- *
- * 可选值:
- * - 'high': 高质量;
- * - 'normal': 普通质量;
- * - 'low': 低质量;
- * - 'original': 原图; */
- quality ?: 'high' | 'normal' | 'low' | 'original'
- /**
- * 是否开启镜像 */
- selfieMirror ?: boolean
- /** 接口调用成功的回调函数 */
- success ?: TakePhotoSuccessCallback
-}
-
-
-export type SetZoomSuccessCallbackResult = {
- /** 实际设置的缩放级别。由于系统限制,某些机型可能无法设置成指定值,会改用最接近的可设值。 */
- zoom : number
- errMsg : string
-}
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type SetZoomCompleteCallback = (res : GeneralCallbackResult) => void
-/** 接口调用失败的回调函数 */
-export type SetZoomFailCallback = (res : GeneralCallbackResult) => void
-/** 接口调用成功的回调函数 */
-export type CameraContextSetZoomSuccessCallback = (
- result : SetZoomSuccessCallbackResult
-) => void
-
-export type CameraContextSetZoomOption = {
- /** 缩放级别,范围[1, maxZoom]。zoom 可取小数,精确到小数后一位。maxZoom 可在 bindinitdone 返回值中获取。 */
- zoom : number
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete ?: SetZoomCompleteCallback
- /** 接口调用失败的回调函数 */
- fail ?: SetZoomFailCallback
- /** 接口调用成功的回调函数 */
- success ?: CameraContextSetZoomSuccessCallback
-}
-
-export type StartRecordTimeoutCallbackResult = {
- /** 视频的文件的临时路径 (本地路径) */
- tempVideoPath : string
-}
-
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type StartRecordCompleteCallback = (res : GeneralCallbackResult) => void
-/** 接口调用失败的回调函数 */
-export type StartRecordFailCallback = (res : GeneralCallbackResult) => void
-/** 超过录制时长上限时会结束录像并触发此回调,录像异常退出时也会触发此回调 */
-export type StartRecordTimeoutCallback = (
- result : StartRecordTimeoutCallbackResult
-) => void
-/** 接口调用成功的回调函数 */
-export type CameraContextStartRecordSuccessCallback = (
- res : GeneralCallbackResult
-) => void
-export type CameraContextStartRecordOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete ?: StartRecordCompleteCallback
- /** 接口调用失败的回调函数 */
- fail ?: StartRecordFailCallback
- /**
- * 是否开启镜像 */
- selfieMirror ?: boolean
- /** 接口调用成功的回调函数 */
- success ?: CameraContextStartRecordSuccessCallback
- /**
- * 录制时长上限,单位为秒,最长不能超过 5 分钟 */
- timeout ?: number
- /** 超过录制时长上限时会结束录像并触发此回调,录像异常退出时也会触发此回调 */
- timeoutCallback ?: StartRecordTimeoutCallback
-}
-
-export type StopRecordSuccessCallbackResult = {
- /** 视频的文件的临时路径 (本地路径) */
- tempVideoPath : string
- errMsg : string
-}
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type StopRecordCompleteCallback = (res : GeneralCallbackResult) => void
-/** 接口调用失败的回调函数 */
-export type StopRecordFailCallback = (res : GeneralCallbackResult) => void
-/** 接口调用成功的回调函数 */
-export type CameraContextStopRecordSuccessCallback = (
- result : StopRecordSuccessCallbackResult
-) => void
-export type CameraContextStopRecordOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete ?: StopRecordCompleteCallback
- /** 启动视频压缩,压缩效果同`chooseVideo` */
- compressed ?: boolean
- /** 接口调用失败的回调函数 */
- fail ?: StopRecordFailCallback
- /** 接口调用成功的回调函数 */
- success ?: CameraContextStopRecordSuccessCallback
-}
-
-/** 回调函数 */
-export type OnCameraFrameCallback = (result : OnCameraFrameCallbackResult) => void
-export type OnCameraFrameCallbackResult = {
- /** 图像像素点数据,一维数组,每四项表示一个像素点的 rgba */
- data : any
- /** 图像数据矩形的高度 */
- height : number
- /** 图像数据矩形的宽度 */
- width : number
-}
-/** 接口调用成功的回调函数 */
-export type StartSuccessCallback = (res : GeneralCallbackResult) => void
-/** 接口调用失败的回调函数 */
-type StartFailCallback = (res : GeneralCallbackResult) => void
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-type StartCompleteCallback = (res : GeneralCallbackResult) => void
-export type CameraFrameListenerStartOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete ?: StartCompleteCallback
- /** 接口调用失败的回调函数 */
- fail ?: StartFailCallback
- /** 接口调用成功的回调函数 */
- success ?: StartSuccessCallback
- /** [Worker](https://developers.weixin.qq.com/miniprogram/dev/api/worker/Worker.html)
- *
- * 可选参数。如果需要在 iOS ExperimentalWorker 内监听摄像头帧数据,则需要传入对应 Worker 对象。详情 [Worker.getCameraFrameData](https://developers.weixin.qq.com/miniprogram/dev/api/worker/Worker.getCameraFrameData.html) */
- // worker ?: Worker
-}
-
-
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type StopCompleteCallback = (res : GeneralCallbackResult) => void
-/** 接口调用失败的回调函数 */
-export type StopFailCallback = (res : GeneralCallbackResult) => void
-/** 接口调用成功的回调函数 */
-export type StopSuccessCallback = (res : GeneralCallbackResult) => void
-export type StopOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete ?: StopCompleteCallback
- /** 接口调用失败的回调函数 */
- fail ?: StopFailCallback
- /** 接口调用成功的回调函数 */
- success ?: StopSuccessCallback
-}
-
-export type FlashMode = 'auto' | 'on' | 'off' | 'torch'
-export type DevicePosition = 'back' | 'front'
-export type Resolution = 'low' | 'medium' | 'high'
-export type FrameSize = 'medium' | 'small' | 'large'
-export type QualityType = 'high' | 'normal' | 'low' | 'original'
-
-
-export type CameraConfig = {
- flash ?: FlashMode
- devicePosition ?: DevicePosition
- resolution ?: Resolution
- frameSize ?: FrameSize
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type SwitchCompleteCallback = (res : GeneralCallbackResult) => void
-/** 接口调用失败的回调函数 */
-export type SwitchFailCallback = (res : GeneralCallbackResult) => void
-/** 接口调用成功的回调函数 */
-export type SwitchSuccessCallback = (res : GeneralCallbackResult) => void
-export type SwitchOption = {
- position : DevicePosition
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete ?: SwitchCompleteCallback
- /** 接口调用失败的回调函数 */
- fail ?: SwitchFailCallback
- /** 接口调用成功的回调函数 */
- success ?: SwitchSuccessCallback
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////////////
-export type OnCameraFrameListenerOption = {
- success ?: OnCameraFrameCallback
-}
-
-export type TakePhoto = (options : TakePhotoOption) => void
-export type SetZoom = (options : CameraContextSetZoomOption) => void
-export type StartRecord = (options : CameraContextStartRecordOption) => void
-export type StopRecord = (options : CameraContextStopRecordOption) => void
-export type OnCameraFrameListener = (options : OnCameraFrameListenerOption) => void
-export type StartCameraFrame = (options : CameraFrameListenerStartOption) => void
-export type StopCameraFrame = (options : StopOption) => void
-export type SwitchCamera = (options : SwitchOption) => void
\ No newline at end of file
diff --git a/unpackage/dist/dev/.uvue/app-android/App.uvue b/unpackage/dist/dev/.uvue/app-android/App.uvue
deleted file mode 100644
index 8645fd3..0000000
--- a/unpackage/dist/dev/.uvue/app-android/App.uvue
+++ /dev/null
@@ -1,35 +0,0 @@
-let firstBackTime = 0;
-const __sfc__ = defineApp({
- onLaunch() {
- console.log('App Launch', " at App.uvue:7");
- },
- onShow() {
- console.log('App Show', " at App.uvue:10");
- },
- onHide() {
- console.log('App Hide', " at App.uvue:13");
- },
- onLastPageBackPress() {
- console.log('App LastPageBackPress', " at App.uvue:17");
- if (firstBackTime == 0) {
- uni.showToast({
- title: '再按一次退出应用',
- position: 'bottom',
- });
- firstBackTime = Date.now();
- setTimeout(() => {
- firstBackTime = 0;
- }, 2000);
- }
- else if (Date.now() - firstBackTime < 2000) {
- firstBackTime = Date.now();
- uni.exit();
- }
- },
- onExit() {
- console.log('App Exit', " at App.uvue:34");
- },
-});
-export default __sfc__;
-const GenAppStyles = [_uM([["uni-row", _pS(_uM([["flexDirection", "row"]]))], ["uni-column", _pS(_uM([["flexDirection", "column"]]))]])];
-//# sourceMappingURL=App.uvue.map
\ No newline at end of file
diff --git a/unpackage/dist/dev/.uvue/app-android/App.uvue.map b/unpackage/dist/dev/.uvue/app-android/App.uvue.map
deleted file mode 100644
index ff05eff..0000000
--- a/unpackage/dist/dev/.uvue/app-android/App.uvue.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["App.uvue"],"names":[],"mappings":"AAEC,IAAI,aAAY,GAAI,CAAA,CAAA;AAEpB,MAAK,OAAQ,GAAE,SAAA,CAAA;IACd,QAAQ;QACP,OAAO,CAAC,GAAG,CAAC,YAAY,EAAA,gBAAA,CAAA,CAAA;IACzB,CAAC;IACD,MAAM;QACL,OAAO,CAAC,GAAG,CAAC,UAAU,EAAA,iBAAA,CAAA,CAAA;IACvB,CAAC;IACD,MAAM;QACL,OAAO,CAAC,GAAG,CAAC,UAAU,EAAA,iBAAA,CAAA,CAAA;IACvB,CAAC;IAED,mBAAmB;QAClB,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAA,iBAAA,CAAA,CAAA;QACnC,IAAI,aAAY,IAAK,CAAC,EAAE;YACvB,GAAG,CAAC,SAAS,CAAC;gBACb,KAAK,EAAE,UAAU;gBACjB,QAAQ,EAAE,QAAQ;aAClB,CAAA,CAAA;YACD,aAAY,GAAI,IAAI,CAAC,GAAG,EAAC,CAAA;YACzB,UAAU,CAAC,GAAG,EAAC;gBACd,aAAY,GAAI,CAAA,CAAA;YACjB,CAAC,EAAE,IAAI,CAAA,CAAA;SACR;aAAO,IAAI,IAAI,CAAC,GAAG,EAAC,GAAI,aAAY,GAAI,IAAI,EAAE;YAC7C,aAAY,GAAI,IAAI,CAAC,GAAG,EAAC,CAAA;YACzB,GAAG,CAAC,IAAI,EAAC,CAAA;SACV;IACD,CAAC;IAED,MAAM;QACL,OAAO,CAAC,GAAG,CAAC,UAAU,EAAA,iBAAA,CAAA,CAAA;IACvB,CAAC;CACF,CAAA,CAAA","file":"App.uvue","sourceRoot":"","sourcesContent":["\r\n\r\n"]}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.uvue/app-android/main.uts b/unpackage/dist/dev/.uvue/app-android/main.uts
deleted file mode 100644
index 599c27a..0000000
--- a/unpackage/dist/dev/.uvue/app-android/main.uts
+++ /dev/null
@@ -1,37 +0,0 @@
-import App from './App.uvue';
-import { createSSRApp } from 'vue';
-export function createApp(): UTSJSONObject {
- const app = createSSRApp(App);
- return {
- app
- };
-}
-export function main(app: IApp) {
- definePageRoutes();
- defineAppConfig();
- (createApp()['app'] as VueApp).mount(app, GenUniApp());
-}
-export class UniAppConfig extends io.dcloud.uniapp.appframe.AppConfig {
- override name: string = "SkinCamera";
- override appid: string = "__UNI__644401D";
- override versionName: string = "1.0.0";
- override versionCode: string = "100";
- override uniCompilerVersion: string = "4.87";
- constructor() { super(); }
-}
-import GenPagesIndexIndexClass from './pages/index/index.uvue';
-function definePageRoutes() {
- __uniRoutes.push({ path: "pages/index/index", component: GenPagesIndexIndexClass, meta: { isQuit: true } as UniPageMeta, style: _uM([["navigationBarTitleText", "uni-app x"]]) } as UniPageRoute);
-}
-const __uniTabBar: Map | null = null;
-const __uniLaunchPage: Map = _uM([["url", "pages/index/index"], ["style", _uM([["navigationBarTitleText", "uni-app x"]])]]);
-function defineAppConfig() {
- __uniConfig.entryPagePath = '/pages/index/index';
- __uniConfig.globalStyle = _uM([["navigationBarTextStyle", "black"], ["navigationBarTitleText", "uni-app x"], ["navigationBarBackgroundColor", "#F8F8F8"], ["backgroundColor", "#F8F8F8"]]);
- __uniConfig.getTabBarConfig = (): Map | null => null;
- __uniConfig.tabBar = __uniConfig.getTabBarConfig();
- __uniConfig.conditionUrl = '';
- __uniConfig.uniIdRouter = _uM();
- __uniConfig.ready = true;
-}
-//# sourceMappingURL=main.uts.map
\ No newline at end of file
diff --git a/unpackage/dist/dev/.uvue/app-android/main.uts.map b/unpackage/dist/dev/.uvue/app-android/main.uts.map
deleted file mode 100644
index 7fb300c..0000000
--- a/unpackage/dist/dev/.uvue/app-android/main.uts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"main.uts","sourceRoot":"","sources":["main.uts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,YAAY,CAAA;AAE5B,OAAO,EAAE,YAAY,EAAE,MAAM,KAAK,CAAA;AAClC,MAAM,UAAU,SAAS;IACxB,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;IAC7B,OAAO;QACN,GAAG;KACH,CAAA;AACF,CAAC;AACD,MAAM,UAAU,IAAI,CAAC,GAAG,EAAE,IAAI;IAC1B,gBAAgB,EAAE,CAAC;IACnB,eAAe,EAAE,CAAC;IAClB,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,OAAO,YAAa,SAAQ,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS;IACjE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAAA;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAAA;IACzC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAA;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,KAAK,CAAA;IACpC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAAA;IAE5C,gBAAgB,KAAK,EAAE,CAAA,CAAC,CAAC;CAC5B;AAED,OAAO,uBAAuB,MAAM,0BAA0B,CAAA;AAC9D,SAAS,gBAAgB;IACzB,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,uBAAuB,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,wBAAwB,EAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,YAAY,CAAC,CAAA;AAChM,CAAC;AACD,MAAM,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA;AACxD,MAAM,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,EAAC,mBAAmB,CAAC,EAAC,CAAC,OAAO,EAAC,GAAG,CAAC,CAAC,CAAC,wBAAwB,EAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC3I,SAAS,eAAe;IACtB,WAAW,CAAC,aAAa,GAAG,oBAAoB,CAAA;IAChD,WAAW,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,wBAAwB,EAAC,OAAO,CAAC,EAAC,CAAC,wBAAwB,EAAC,WAAW,CAAC,EAAC,CAAC,8BAA8B,EAAC,SAAS,CAAC,EAAC,CAAC,iBAAiB,EAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IACnL,WAAW,CAAC,eAAe,GAAG,IAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAE,IAAI,CAAA;IACjE,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,eAAe,EAAE,CAAA;IAClD,WAAW,CAAC,YAAY,GAAG,EAAE,CAAA;IAC7B,WAAW,CAAC,WAAW,GAAG,GAAG,EAAE,CAAA;IAE/B,WAAW,CAAC,KAAK,GAAG,IAAI,CAAA;AAC1B,CAAC","sourcesContent":["import App from './App.uvue'\r\n\r\nimport { createSSRApp } from 'vue'\r\nexport function createApp() {\r\n\tconst app = createSSRApp(App)\r\n\treturn {\r\n\t\tapp\r\n\t}\r\n}\nexport function main(app: IApp) {\n definePageRoutes();\n defineAppConfig();\n (createApp()['app'] as VueApp).mount(app, GenUniApp());\n}\n\nexport class UniAppConfig extends io.dcloud.uniapp.appframe.AppConfig {\n override name: string = \"SkinCamera\"\n override appid: string = \"__UNI__644401D\"\n override versionName: string = \"1.0.0\"\n override versionCode: string = \"100\"\n override uniCompilerVersion: string = \"4.87\"\n \n constructor() { super() }\n}\n\nimport GenPagesIndexIndexClass from './pages/index/index.uvue'\nfunction definePageRoutes() {\n__uniRoutes.push({ path: \"pages/index/index\", component: GenPagesIndexIndexClass, meta: { isQuit: true } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"uni-app x\"]]) } as UniPageRoute)\n}\nconst __uniTabBar: Map | null = null\nconst __uniLaunchPage: Map = _uM([[\"url\",\"pages/index/index\"],[\"style\",_uM([[\"navigationBarTitleText\",\"uni-app x\"]])]])\nfunction defineAppConfig(){\n __uniConfig.entryPagePath = '/pages/index/index'\n __uniConfig.globalStyle = _uM([[\"navigationBarTextStyle\",\"black\"],[\"navigationBarTitleText\",\"uni-app x\"],[\"navigationBarBackgroundColor\",\"#F8F8F8\"],[\"backgroundColor\",\"#F8F8F8\"]])\n __uniConfig.getTabBarConfig = ():Map | null => null\n __uniConfig.tabBar = __uniConfig.getTabBarConfig()\n __uniConfig.conditionUrl = ''\n __uniConfig.uniIdRouter = _uM()\n \n __uniConfig.ready = true\n}\n"]}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.uvue/app-android/pages/index/index.uvue b/unpackage/dist/dev/.uvue/app-android/pages/index/index.uvue
deleted file mode 100644
index 3ab82d7..0000000
--- a/unpackage/dist/dev/.uvue/app-android/pages/index/index.uvue
+++ /dev/null
@@ -1,71 +0,0 @@
-import { takePhoto, TakePhotoOption, TakePhotoSuccessCallbackResult, GeneralCallbackResult } from '@/uni_modules/Skin-cameraUTS';
-const __sfc__ = defineComponent({
- data() {
- return {
- yanse: "red",
- widthNum: 750,
- heightNum: 200,
- flash: "on",
- device: "front",
- imagePath: "",
- videoPath: "https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/2minute-demo.mp4"
- };
- },
- onLoad() {
- // let permissionNeed = ["android.permission.CAMERA", "android.permission.RECORD_AUDIO",
- // "android.permission.WRITE_EXTERNAL_STORAGE"]
- // // 请求权限
- // UTSAndroid.requestSystemPermission(UTSAndroid.getUniActivity()!, permissionNeed, function (allRight : boolean, _ : string[]) {
- // if (allRight) {
- // // 权限请求成功
- // } else {
- // //用户拒绝了部分权限
- // }
- // }, function (_ : boolean, _ : string[]) {
- // //用户拒绝了部分权限
- // })
- },
- methods: {
- onError(res: any) {
- console.log(res, " at pages/index/index.uvue:54");
- },
- _takePhoto() {
- takePhoto({
- success: (res: TakePhotoSuccessCallbackResult) => {
- console.log('takePhoto', res, " at pages/index/index.uvue:59");
- this.imagePath = res.tempImagePath;
- // _previewImage();
- },
- fail: (res: GeneralCallbackResult) => {
- console.log('takePhoto', res, " at pages/index/index.uvue:64");
- }
- } as TakePhotoOption);
- }
- }
-});
-export default __sfc__;
-function GenPagesIndexIndexRender(this: InstanceType): any | null {
- const _ctx = this;
- const _cache = this.$.renderCache;
- return _cE("scroll-view", _uM({ class: "page-scroll-view" }), [
- _cE("view", null, [
- _cE("button", _uM({ onClick: _ctx._takePhoto }), "拍照", 8 /* PROPS */, ["onClick"]),
- _cE(XfCameraComponent.name, _uM({
- style: _nS(_uM({ "height": "750rpx", "background-color": "red" })),
- onError: _ctx.onError,
- flash: _ctx.flash,
- position: _ctx.device
- }), null, 44 /* STYLE, PROPS, NEED_HYDRATION */, ["onError", "flash", "position"]),
- isTrue(_ctx.imagePath)
- ? _cE("image", _uM({
- key: 0,
- mode: "aspectFit",
- src: _ctx.imagePath
- }), null, 8 /* PROPS */, ["src"])
- : _cC("v-if", true)
- ])
- ]);
-}
-const GenPagesIndexIndexStyles = [_uM([["video", _pS(_uM([["width", "100%"], ["height", 200]]))]])];
-import { XfCameraComponent } from '@/uni_modules/Skin-cameraUTS?uts-proxy';
-//# sourceMappingURL=index.uvue.map
\ No newline at end of file
diff --git a/unpackage/dist/dev/.uvue/app-android/pages/index/index.uvue.map b/unpackage/dist/dev/.uvue/app-android/pages/index/index.uvue.map
deleted file mode 100644
index ef4f08b..0000000
--- a/unpackage/dist/dev/.uvue/app-android/pages/index/index.uvue.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["pages/index/index.uvue"],"names":[],"mappings":"AAgBC,OAAO,EACN,SAAS,EACT,eAAe,EACf,8BAA8B,EAC9B,qBAAoB,EACrB,MAAO,8BAA6B,CAAA;AAGpC,MAAK,OAAQ,GAAE,eAAA,CAAA;IACd,IAAI;QACH,OAAO;YACN,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,GAAG;YACb,SAAS,EAAE,GAAG;YAEd,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,OAAO;YACf,SAAS,EAAE,EAAE;YACb,SAAS,EAAE,mEAAkE;SAC9E,CAAA;IACD,CAAC;IACD,MAAM;QACL,wFAAuF;QACvF,oDAAmD;QACnD,UAAS;QACT,iIAAgI;QAChI,mBAAkB;QAClB,cAAa;QACb,YAAW;QACX,gBAAe;QACf,KAAI;QACJ,4CAA2C;QAC3C,eAAc;QACd,KAAI;IACL,CAAC;IACD,OAAO,EAAE;QACR,OAAO,CAAC,GAAE,EAAI,GAAG;YAChB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAA,+BAAA,CAAA,CAAA;QAChB,CAAC;QACD,UAAU;YACT,SAAS,CAAC;gBACT,OAAO,EAAE,CAAC,GAAE,EAAI,8BAA8B,EAAE,EAAC;oBAChD,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,EAAA,+BAAA,CAAA,CAAA;oBAC5B,IAAI,CAAC,SAAQ,GAAI,GAAG,CAAC,aAAa,CAAA;oBAClC,mBAAkB;gBACnB,CAAC;gBACD,IAAI,EAAE,CAAC,GAAE,EAAI,qBAAqB,EAAE,EAAC;oBACpC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,EAAA,+BAAA,CAAA,CAAA;gBAC7B,CAAA;aACD,IAAK,eAAe,CAAA,CAAA;QACrB,CAAA;KACD;CACD,CAAA,CAAA;;;;;WAlEA,GAAA,CASc,aAAA,EAAA,GAAA,CAAA,EATD,KAAK,EAAC,kBAAkB,EAAA,CAAA,EAAA;QAEpC,GAAA,CAKO,MAAA,EAAA,IAAA,EAAA;YAJN,GAAA,CAAuC,QAAA,EAAA,GAAA,CAAA,EAA9B,OAAK,EAAE,IAAA,CAAA,UAAU,EAAA,CAAA,EAAE,IAAE,EAAA,CAAA,CAAA,WAAA,EAAA,CAAA,SAAA,CAAA,CAAA;YAC9B,GAAA,CAAA,iBAAA,CAAA,IACgC,EAAA,GAAA,CAAA;gBADrB,KAA6C,EAAA,GAAA,CAA7C,GAAA,CAAA,EAAA,QAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,CAA6C,CAAA;gBAAE,OAAK,EAAE,IAAA,CAAA,OAAO;gBAAG,KAAK,EAAE,IAAA,CAAA,KAAK;gBACrF,QAAQ,EAAE,IAAA,CAAA,MAAM;;mBACL,IAAA,CAAA,SAAS,CAAA;kBAAtB,GAAA,CAAkE,OAAA,EAAA,GAAA,CAAA;;oBAA1C,IAAI,EAAC,WAAW;oBAAE,GAAG,EAAE,IAAA,CAAA,SAAS","file":"pages/index/index.uvue","sourcesContent":["\n\n\t\n\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\n\n\n\n\n\n"]}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/CameraManager.uts b/unpackage/dist/dev/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/CameraManager.uts
deleted file mode 100644
index c863342..0000000
--- a/unpackage/dist/dev/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/CameraManager.uts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { CameraView } from "./camera";
-export class CameraManager {
- private cameraView: CameraView | null = null;
- private static instance: CameraManager | null = null;
- public static getInstance(): CameraManager {
- if (CameraManager.instance == null) {
- CameraManager.instance = new CameraManager();
- }
- return CameraManager.instance!;
- }
- public setCameraView(cameraView?: CameraView): void {
- this.cameraView = cameraView!;
- }
- public getCameraView(): CameraView | null {
- return this.cameraView;
- }
- public dispose(): void {
- this.cameraView = null;
- }
-}
-//# sourceMappingURL=CameraManager.uts.map
\ No newline at end of file
diff --git a/unpackage/dist/dev/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/CameraManager.uts.map b/unpackage/dist/dev/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/CameraManager.uts.map
deleted file mode 100644
index 25841c6..0000000
--- a/unpackage/dist/dev/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/CameraManager.uts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"CameraManager.uts","sourceRoot":"","sources":["uni_modules/Skin-cameraUTS/utssdk/app-android/CameraManager.uts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,OAAO,aAAa;IACzB,OAAO,CAAC,UAAU,EAAG,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC;IAE9C,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAG,aAAa,GAAG,IAAI,GAAG,IAAI,CAAC;IAEtD,MAAM,CAAC,MAAM,CAAC,WAAW,IAAK,aAAa;QAC1C,IAAI,aAAa,CAAC,QAAQ,IAAI,IAAI,EAAE;YACnC,aAAa,CAAC,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;SAC7C;QACD,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,UAAW,CAAC,EAAE,UAAU,GAAI,IAAI;QACpD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,CAAA;IAC9B,CAAC;IAED,MAAM,CAAC,aAAa,IAAK,UAAU,GAAG,IAAI;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,OAAO,IAAK,IAAI;QACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACxB,CAAC;CACD","sourcesContent":["import { CameraView } from \"./camera\";\r\n\r\nexport class CameraManager {\r\n\tprivate cameraView : CameraView | null = null;\r\n\r\n\tprivate static instance : CameraManager | null = null;\r\n\r\n\tpublic static getInstance() : CameraManager {\r\n\t\tif (CameraManager.instance == null) {\r\n\t\t\tCameraManager.instance = new CameraManager();\r\n\t\t}\r\n\t\treturn CameraManager.instance!;\r\n\t}\r\n\r\n\tpublic setCameraView(cameraView ?: CameraView) : void {\r\n\t\tthis.cameraView = cameraView!\r\n\t}\r\n\r\n\tpublic getCameraView() : CameraView | null {\r\n\t\treturn this.cameraView;\r\n\t}\r\n\r\n\tpublic dispose() : void {\r\n\t\tthis.cameraView = null;\r\n\t}\r\n}"]}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/camera.uts b/unpackage/dist/dev/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/camera.uts
deleted file mode 100644
index 24f254a..0000000
--- a/unpackage/dist/dev/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/camera.uts
+++ /dev/null
@@ -1,415 +0,0 @@
-import ProcessCameraProvider from 'androidx.camera.lifecycle.ProcessCameraProvider';
-import Preview from 'androidx.camera.core.Preview';
-import MirrorMode from 'androidx.camera.core.MirrorMode';
-import PreviewView from 'androidx.camera.view.PreviewView';
-import Context from 'android.content.Context';
-import FrameLayout from 'android.widget.FrameLayout';
-import ViewGroup from 'android.view.ViewGroup';
-import CameraSelector from 'androidx.camera.core.CameraSelector';
-import ImageAnalysis from 'androidx.camera.core.ImageAnalysis';
-import UseCaseGroup from 'androidx.camera.core.UseCaseGroup';
-import ContextCompat from 'androidx.core.content.ContextCompat';
-import LifecycleOwner from 'androidx.lifecycle.LifecycleOwner';
-import ImageCapture from 'androidx.camera.core.ImageCapture';
-import Size from 'android.util.Size';
-import ImageCaptureException from 'androidx.camera.core.ImageCaptureException';
-import File from 'java.io.File';
-import ImageProxy from 'androidx.camera.core.ImageProxy';
-import CameraControl from 'androidx.camera.core.CameraControl';
-import VideoCapture from 'androidx.camera.video.VideoCapture';
-import Recorder from 'androidx.camera.video.Recorder';
-import Recording from 'androidx.camera.video.Recording';
-import FileOutputOptions from 'androidx.camera.video.FileOutputOptions';
-import Quality from 'androidx.camera.video.Quality';
-import QualitySelector from 'androidx.camera.video.QualitySelector';
-import VideoRecordEvent from 'androidx.camera.video.VideoRecordEvent';
-// import Bitmap from 'android.graphics.Bitmap';
-// import FileOutputStream from 'java.io.FileOutputStream';
-// import MediaMetadataRetriever from 'android.media.MediaMetadataRetriever';
-import ExecutorService from 'java.util.concurrent.ExecutorService';
-import Executors from 'java.util.concurrent.Executors';
-import ImageFormat from 'android.graphics.ImageFormat';
-import { TakePhotoOption, GeneralCallbackResult, TakePhotoSuccessCallbackResult, CameraContextSetZoomOption, SetZoomSuccessCallbackResult, CameraContextStopRecordOption, CameraContextStartRecordOption, StartRecordTimeoutCallbackResult, StopRecordSuccessCallbackResult, OnCameraFrameCallback, OnCameraFrameCallbackResult, CameraFrameListenerStartOption, StopOption, CameraConfig, FlashMode, DevicePosition, Resolution,
-//FrameSize,
-QualityType, OnCameraFrameListenerOption } from '../interface';
-import Bitmap from "android.graphics.Bitmap";
-import FileOutputStream from "java.io.FileOutputStream";
-const FLASH_MODE_MAP = new Map([
- ['auto', ImageCapture.FLASH_MODE_AUTO],
- ['on', ImageCapture.FLASH_MODE_ON],
- ['torch', ImageCapture.FLASH_MODE_ON],
- ['off', ImageCapture.FLASH_MODE_OFF],
-]);
-const DEVICE_POSITION_MAP = new Map([
- ['back', CameraSelector.LENS_FACING_BACK],
- ['front', CameraSelector.LENS_FACING_FRONT],
-]);
-const RESOLUTION_MAP = new Map([
- ['low', Quality.LOWEST],
- ['medium', Quality.HD],
- ['high', Quality.HIGHEST],
-]);
-const QUALITY_MAP = new Map([
- ["high", ImageCapture.CAPTURE_MODE_MAXIMIZE_QUALITY],
- ["low", ImageCapture.CAPTURE_MODE_MINIMIZE_LATENCY],
-]);
-const MIRROR_MODE = new Map([
- [true, MirrorMode.MIRROR_MODE_ON],
- [false, MirrorMode.MIRROR_MODE_OFF],
-]);
-export class CameraView extends FrameLayout {
- private previewView: PreviewView;
- public cameraProvider: ProcessCameraProvider | null = null;
- public cameraControl: CameraControl | null = null;
- private imageCapture: ImageCapture | null = null;
- private videoCapture: VideoCapture | null = null;
- private recording: Recording | null = null;
- private comp: UTSComponent;
- private flashMode: FlashMode = 'auto';
- private devicePosition: DevicePosition = 'back';
- private resolution: Resolution = 'medium';
- // private frameSize : FrameSize = 'medium'
- private quality: QualityType = 'normal';
- private videoFile: File | null = null;
- maxZoom: Float = (1).toFloat();
- minZoom: Float = (1).toFloat();
- private initialized: boolean = false;
- private isListening: boolean = false;
- private videoSelfieMirror: boolean | null = null;
- private cameraContextStopRecordOption: CameraContextStopRecordOption | null = null;
- private onCameraFrameCallback: OnCameraFrameCallback | null = null;
- private cameraExecutor: ExecutorService | null = null;
- private onCameraFrameListenerOption: OnCameraFrameListenerOption | null = null;
- constructor(context: Context, comp: UTSComponent, config: CameraConfig = {} as CameraConfig) {
- super(context);
- this.comp = comp;
- this.flashMode = config.flash ?? 'auto';
- this.devicePosition = config.devicePosition ?? 'back';
- this.resolution = config.resolution ?? 'medium';
- // this.frameSize = config.frameSize ?? 'medium'
- this.previewView = new PreviewView(context);
- let layoutParam = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
- this.addView(this.previewView, layoutParam);
- this.setupCamera();
- }
- setupCamera() {
- // this.checkSelfPermission().then(() => {
- let cameraProviderFuture = ProcessCameraProvider.getInstance(UTSAndroid.getUniActivity()!);
- cameraProviderFuture.addListener(() => {
- try {
- this.cameraProvider = cameraProviderFuture.get();
- this.bindCamera();
- }
- catch (e: any) {
- let ret: Map = new Map();
- ret.set("errMsg", JSON.stringify(e));
- this.comp.$emit('error', ret);
- }
- }, ContextCompat.getMainExecutor(UTSAndroid.getUniActivity()!));
- // }).catch((err) => {
- // let ret : Map = new Map();
- // ret.set("errMsg", err ?? '权限不足')
- // this.comp.$emit('error', ret)
- // })
- }
- bindCamera() {
- let targetResolution = RESOLUTION_MAP.get(this.resolution) ?? Quality.HD;
- let captureMode = QUALITY_MAP.get(this.quality) ?? ImageCapture.CAPTURE_MODE_MAXIMIZE_QUALITY;
- // 创建一个Preview对象,用于显示相机预览
- let preview = new Preview.Builder()
- .build();
- preview.setSurfaceProvider(this.previewView.getSurfaceProvider());
- // 创建一个ImageCapture对象,用于拍照
- let imageCapture = new ImageCapture.Builder()
- .setFlashMode(FLASH_MODE_MAP.get(this.flashMode)!)
- .setCaptureMode(captureMode)
- .build();
- // 选择要使用的相机(后置或前置)
- let cameraSelector = new CameraSelector.Builder()
- .requireLensFacing(DEVICE_POSITION_MAP.get(this.devicePosition)!)
- .build();
- let recorder = Recorder.Builder()
- .setQualitySelector(QualitySelector.from(targetResolution));
- let mirrorMode = this.videoSelfieMirror == null ? MirrorMode.MIRROR_MODE_ON_FRONT_ONLY : MIRROR_MODE.get(this.videoSelfieMirror!);
- let videoCapture = new VideoCapture.Builder(recorder.build())
- .setMirrorMode(mirrorMode!)
- .build();
- this.videoCapture = videoCapture;
- // 将参数应用到 VideoCapture
- this.imageCapture = imageCapture;
- this.cameraProvider!.unbindAll();
- let imageAnalysis = ImageAnalysis.Builder()
- // .setTargetResolution(new Size(1280, 720))
- .setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)
- .build();
- let viewPort = this.previewView.getViewPort()!;
- let useCaseGroup = new UseCaseGroup.Builder()
- .addUseCase(preview)
- .addUseCase(imageAnalysis)
- .addUseCase(imageCapture)
- .addUseCase(videoCapture)
- .setViewPort(viewPort)
- .build();
- this.cameraExecutor = Executors.newSingleThreadExecutor();
- let _this = this;
- class Analyzer implements ImageAnalysis.Analyzer {
- constructor() {
- }
- override analyze(image: ImageProxy) {
- if (_this.isListening) {
- let imageFormat = image.getFormat();
- // 获取图像的宽度和高度
- let width = image.width;
- let height = image.height;
- if (imageFormat == ImageFormat.YUV_420_888) {
- _this.onCameraFrameCallback?.({
- width,
- height,
- data: image
- } as OnCameraFrameCallbackResult);
- _this.onCameraFrameListenerOption?.success?.({
- width,
- height,
- data: image
- } as OnCameraFrameCallbackResult);
- }
- }
- image.close();
- }
- override getDefaultTargetResolution(): Size {
- // 返回默认的目标分辨率
- return Size(640, 480);
- }
- }
- imageAnalysis.setAnalyzer(this.cameraExecutor!, new Analyzer() as ImageAnalysis.Analyzer);
- let camera = this.cameraProvider!.bindToLifecycle(UTSAndroid.getUniActivity()! as LifecycleOwner, cameraSelector, useCaseGroup
- // preview,
- // imageCapture,
- // videoCapture
- );
- this.cameraControl = camera.getCameraControl();
- if (!this.initialized) {
- this.initialized = true;
- let zoomState = camera.getCameraInfo().getZoomState().getValue();
- this.maxZoom = zoomState?.getMaxZoomRatio() ?? (1).toFloat();
- this.minZoom = zoomState?.getMinZoomRatio() ?? (1).toFloat();
- let maxZoom = this.maxZoom;
- let ret: Map = new Map();
- ret.set("maxZoom", maxZoom);
- this.comp.$emit('ready', ret);
- }
- }
- unbindCamera() {
- this.cameraProvider?.unbindAll();
- this.cameraExecutor?.shutdown();
- }
- // checkSelfPermission() : Promise {
- // let permissionNeed = ["android.permission.CAMERA", "android.permission.RECORD_AUDIO", "android.permission.READ_EXTERNAL_STORAGE"]
- // return new Promise((resoleve, _) => {
- // resoleve(true);
- // UTSAndroid.requestSystemPermission(UTSAndroid.getUniActivity()!, permissionNeed, function (allRight : boolean, list : string[]) {
- // if (allRight) {
- // resoleve(true);
- // } else {
- // reject(list);
- // }
- // }, function (_ : boolean, grantedList : string[]) {
- // //grantedList
- // reject(grantedList);
- // })
- // })
- // }
- setConfig(config: CameraConfig = {} as CameraConfig) {
- this.flashMode = config.flash ?? 'auto';
- this.devicePosition = config.devicePosition ?? 'back';
- this.resolution = config.resolution ?? 'medium';
- // this.frameSize = config.frameSize ?? 'medium'
- }
- setFlash(mode: FlashMode) {
- this.flashMode = mode;
- if (FLASH_MODE_MAP.get(mode) == null || this.imageCapture == null)
- return;
- this.imageCapture!.setFlashMode(FLASH_MODE_MAP.get(mode)!);
- }
- switchCamera(position: DevicePosition) {
- this.devicePosition = position;
- if (DEVICE_POSITION_MAP.get(position) == null || this.cameraProvider == null)
- return;
- this.unbindCamera();
- this.bindCamera();
- }
- isResolutionSupported(context: Context, cameraSelector: CameraSelector, targetResolution: Size): boolean {
- return true;
- }
- takePhoto(option: TakePhotoOption) {
- let quality = option.quality ?? "high";
- this.quality = quality;
- if (quality == 'low') {
- this.unbindCamera();
- this.bindCamera();
- }
- // 设置输出目录
- let privateDir = UTSAndroid.getAppCachePath()!;
- const tempFile = new File(privateDir);
- if (!tempFile.exists()) {
- tempFile.mkdirs();
- }
- // 设置文件名
- const photoFile = new File(privateDir, Date.now() + '.png');
- // 处理镜像
- let metadata = new ImageCapture.Metadata();
- metadata.setReversedHorizontal(option.selfieMirror ?? DEVICE_POSITION_MAP.get(this.devicePosition)! == CameraSelector.LENS_FACING_FRONT);
- const outputOptions = ImageCapture.OutputFileOptions.Builder(photoFile).setMetadata(metadata).build();
- class OnImageSavedCallback implements ImageCapture.OnImageSavedCallback {
- override onImageSaved(outputFileResults: ImageCapture.OutputFileResults) {
- option.success?.({
- tempImagePath: photoFile.getAbsolutePath(),
- quality: quality,
- errMsg: 'ok'
- } as TakePhotoSuccessCallbackResult);
- option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult);
- }
- override onError(err: ImageCaptureException) {
- const result: GeneralCallbackResult = {
- errMsg: err.toString()
- };
- option.fail?.(result);
- option.complete?.(result);
- }
- override onCaptureStarted() {
- }
- }
- this.imageCapture!.takePicture(outputOptions, ContextCompat.getMainExecutor(UTSAndroid.getUniActivity()!), new OnImageSavedCallback() as ImageCapture.OnImageSavedCallback);
- }
- setZoom(option: CameraContextSetZoomOption) {
- if (this.cameraControl != null) {
- try {
- this.cameraControl!.setZoomRatio(option.zoom.toFloat());
- option.success?.({
- zoom: option.zoom,
- errMsg: 'ok'
- } as SetZoomSuccessCallbackResult);
- option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult);
- }
- catch (e: any) {
- const result: GeneralCallbackResult = {
- errMsg: e.toString()
- };
- option.complete?.(result);
- option.fail?.(result);
- }
- }
- else {
- const result: GeneralCallbackResult = {
- errMsg: '相机不存在'
- };
- option.complete?.(result);
- option.fail?.(result);
- }
- }
- startRecord(option: CameraContextStartRecordOption) {
- if (option.selfieMirror != null && this.videoSelfieMirror != option.selfieMirror) {
- this.videoSelfieMirror = option.selfieMirror;
- this.unbindCamera();
- this.bindCamera();
- }
- if (this.recording != null || this.videoCapture == null) {
- option.fail?.({
- errMsg: '已经在录制或相机不存在'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '已经在录制或相机不存在'
- } as GeneralCallbackResult);
- return;
- }
- // 设置输出目录
- let privateDir = UTSAndroid.getAppCachePath()!;
- // 设置文件名
- this.videoFile = new File(privateDir, Date.now() + 'video.mp4');
- let outputFileOptions = new FileOutputOptions.Builder(this.videoFile!).build();
- this.recording = this.videoCapture!.output
- .prepareRecording(UTSAndroid.getUniActivity()!, outputFileOptions)
- .withAudioEnabled()
- // .apply(()=>{
- // })
- .start(ContextCompat.getMainExecutor(UTSAndroid.getUniActivity()!), (recordEvent: VideoRecordEvent) => {
- if (recordEvent instanceof VideoRecordEvent.Start) {
- option.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult);
- if (option.timeout != null && option.timeout! > 0) {
- setTimeout(() => {
- this.recording?.stop();
- }, option.timeout!);
- }
- }
- else if (recordEvent instanceof VideoRecordEvent.Finalize) {
- this.recording?.close();
- this.recording = null;
- let tempVideoPath = this.videoFile?.getAbsolutePath()!;
- //let tempThumbPath = extractThumbnail(tempVideoPath) ?? ''
- this.cameraContextStopRecordOption?.success?.({
- tempVideoPath,
- errMsg: 'ok'
- } as StopRecordSuccessCallbackResult);
- option.timeoutCallback?.({
- tempVideoPath,
- } as StartRecordTimeoutCallbackResult);
- }
- });
- }
- stopRecord(option: CameraContextStopRecordOption) {
- if (this.recording == null) {
- option.fail?.({
- errMsg: '未开始录制'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '未开始录制'
- } as GeneralCallbackResult);
- return;
- }
- this.cameraContextStopRecordOption = option;
- this.recording?.stop();
- }
- onCameraFrame(callback: OnCameraFrameCallback | null = null) {
- this.onCameraFrameCallback = callback;
- }
- onCameraFrameListener(option: OnCameraFrameListenerOption) {
- this.onCameraFrameListenerOption = option;
- }
- cameraFrameOnStart(option?: CameraFrameListenerStartOption) {
- this.isListening = true;
- option?.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult);
- }
- cameraFrameOnStop(option?: StopOption) {
- this.isListening = false;
- option?.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult);
- }
-}
-// // 从视频文件中提取封面的函数
-// function extractThumbnail(videoUri : string) : string | null {
-// let retriever = new MediaMetadataRetriever()
-// retriever.setDataSource(videoUri)
-// // 提取视频的某一帧作为封面
-// let thumbnail = retriever.frameAtTime
-// // 保存封面到文件
-// if (thumbnail != null) {
-// let privateDir = UTSAndroid.getAppCachePath();
-// const thumbnailFile = new File(privateDir, Date.now() + '_thumbnail.jpg');
-// let outputStream = FileOutputStream(thumbnailFile)
-// thumbnail.compress(Bitmap.CompressFormat.JPEG, 90, outputStream)
-// outputStream.close()
-// return thumbnailFile.getAbsolutePath()
-// }
-// retriever.release()
-// return null
-// }
-//# sourceMappingURL=camera.uts.map
\ No newline at end of file
diff --git a/unpackage/dist/dev/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/camera.uts.map b/unpackage/dist/dev/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/camera.uts.map
deleted file mode 100644
index 27a9b7c..0000000
--- a/unpackage/dist/dev/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/camera.uts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"camera.uts","sourceRoot":"","sources":["uni_modules/Skin-cameraUTS/utssdk/app-android/camera.uts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,iDAAiD,CAAA;AACnF,OAAO,OAAO,MAAM,8BAA8B,CAAA;AAClD,OAAO,UAAU,MAAM,iCAAiC,CAAA;AACxD,OAAO,WAAW,MAAM,kCAAkC,CAAA;AAC1D,OAAO,OAAO,MAAM,yBAAyB,CAAA;AAC7C,OAAO,WAAW,MAAM,4BAA4B,CAAA;AACpD,OAAO,SAAS,MAAM,wBAAwB,CAAA;AAC9C,OAAO,cAAc,MAAM,qCAAqC,CAAA;AAChE,OAAO,aAAa,MAAM,oCAAoC,CAAA;AAC9D,OAAO,YAAY,MAAM,mCAAmC,CAAA;AAC5D,OAAO,aAAa,MAAM,qCAAqC,CAAA;AAE/D,OAAO,cAAc,MAAM,mCAAmC,CAAA;AAC9D,OAAO,YAAY,MAAM,mCAAmC,CAAA;AAC5D,OAAO,IAAI,MAAM,mBAAmB,CAAA;AACpC,OAAO,qBAAqB,MAAM,4CAA4C,CAAA;AAC9E,OAAO,IAAI,MAAM,cAAc,CAAA;AAE/B,OAAO,UAAU,MAAM,iCAAiC,CAAC;AACzD,OAAO,aAAa,MAAM,oCAAoC,CAAC;AAE/D,OAAO,YAAY,MAAM,oCAAoC,CAAA;AAC7D,OAAO,QAAQ,MAAM,gCAAgC,CAAA;AACrD,OAAO,SAAS,MAAM,iCAAiC,CAAA;AACvD,OAAO,iBAAiB,MAAM,yCAAyC,CAAA;AACvE,OAAO,OAAO,MAAM,+BAA+B,CAAA;AACnD,OAAO,eAAe,MAAM,uCAAuC,CAAA;AACnE,OAAO,gBAAgB,MAAM,wCAAwC,CAAA;AAErE,gDAAgD;AAChD,2DAA2D;AAC3D,6EAA6E;AAE7E,OAAO,eAAe,MAAM,sCAAsC,CAAA;AAClE,OAAO,SAAS,MAAM,gCAAgC,CAAA;AACtD,OAAO,WAAW,MAAM,8BAA8B,CAAC;AAEvD,OAAO,EACN,eAAe,EACf,qBAAqB,EACrB,8BAA8B,EAC9B,0BAA0B,EAC1B,4BAA4B,EAC5B,6BAA6B,EAC7B,8BAA8B,EAC9B,gCAAgC,EAChC,+BAA+B,EAC/B,qBAAqB,EACrB,2BAA2B,EAC3B,8BAA8B,EAC9B,UAAU,EAEV,YAAY,EACZ,SAAS,EACT,cAAc,EACd,UAAU;AACV,YAAY;AACZ,WAAW,EACX,2BAA2B,EAC3B,MAAM,cAAc,CAAA;AACrB,OAAO,MAAM,MAAM,yBAAyB,CAAC;AAC7C,OAAO,gBAAgB,MAAM,0BAA0B,CAAC;AAExD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE;IAC3C,CAAC,MAAM,EAAE,YAAY,CAAC,eAAe,CAAC;IACtC,CAAC,IAAI,EAAE,YAAY,CAAC,aAAa,CAAC;IAClC,CAAC,OAAO,EAAE,YAAY,CAAC,aAAa,CAAC;IACrC,CAAC,KAAK,EAAE,YAAY,CAAC,cAAc,CAAC;CACpC,CAAC,CAAA;AACF,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE;IAChD,CAAC,MAAM,EAAE,cAAc,CAAC,gBAAgB,CAAC;IACzC,CAAC,OAAO,EAAE,cAAc,CAAC,iBAAiB,CAAC;CAC3C,CAAC,CAAA;AAGF,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE;IAC/C,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC;IACvB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;IACtB,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC;CACzB,CAAC,CAAA;AAEF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE;IACxC,CAAC,MAAM,EAAE,YAAY,CAAC,6BAA6B,CAAC;IACpD,CAAC,KAAK,EAAE,YAAY,CAAC,6BAA6B,CAAC;CACnD,CAAC,CAAA;AAEF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE;IACzC,CAAC,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC;IACjC,CAAC,KAAK,EAAE,UAAU,CAAC,eAAe,CAAC;CACnC,CAAC,CAAA;AAEF,MAAM,OAAO,UAAW,SAAQ,WAAW;IAC1C,OAAO,CAAC,WAAW,EAAG,WAAW,CAAC;IAClC,MAAM,CAAC,cAAc,EAAG,qBAAqB,GAAG,IAAI,GAAG,IAAI,CAAC;IAC5D,MAAM,CAAC,aAAa,EAAG,aAAa,GAAG,IAAI,GAAG,IAAI,CAAC;IACnD,OAAO,CAAC,YAAY,EAAG,YAAY,GAAG,IAAI,GAAG,IAAI,CAAA;IACjD,OAAO,CAAC,YAAY,EAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA;IAC3D,OAAO,CAAC,SAAS,EAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAAA;IAC3C,OAAO,CAAC,IAAI,EAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IACxC,OAAO,CAAC,SAAS,EAAG,SAAS,GAAG,MAAM,CAAA;IACtC,OAAO,CAAC,cAAc,EAAG,cAAc,GAAG,MAAM,CAAA;IAChD,OAAO,CAAC,UAAU,EAAG,UAAU,GAAG,QAAQ,CAAA;IAC1C,2CAA2C;IAC3C,OAAO,CAAC,OAAO,EAAG,WAAW,GAAG,QAAQ,CAAA;IACxC,OAAO,CAAC,SAAS,EAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACtC,OAAO,EAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA;IAC/B,OAAO,EAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA;IAC/B,OAAO,CAAC,WAAW,EAAG,OAAO,GAAG,KAAK,CAAA;IACrC,OAAO,CAAC,WAAW,EAAG,OAAO,GAAG,KAAK,CAAA;IACrC,OAAO,CAAC,iBAAiB,EAAG,OAAO,GAAG,IAAI,GAAG,IAAI,CAAA;IACjD,OAAO,CAAC,6BAA6B,EAAG,6BAA6B,GAAG,IAAI,GAAG,IAAI,CAAA;IACnF,OAAO,CAAC,qBAAqB,EAAG,qBAAqB,GAAG,IAAI,GAAG,IAAI,CAAA;IACnE,OAAO,CAAC,cAAc,EAAG,eAAe,GAAG,IAAI,GAAG,IAAI,CAAA;IACtD,OAAO,CAAC,2BAA2B,EAAG,2BAA2B,GAAG,IAAI,GAAG,IAAI,CAAC;IAEhF,YAAY,OAAO,EAAG,OAAO,EAAE,IAAI,EAAG,YAAY,CAAC,UAAU,CAAC,EAAE,MAAM,EAAG,YAAY,GAAG,EAAE,IAAI,YAAY;QACzG,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAA;QACvC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,MAAM,CAAA;QACrD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,QAAQ,CAAA;QAC/C,gDAAgD;QAEhD,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,WAAW,GAAG,IAAI,WAAW,CAAC,YAAY,CAC7C,SAAS,CAAC,YAAY,CAAC,YAAY,EACnC,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC,WAAW,EAAE,CAAA;IACnB,CAAC;IACD,WAAW;QACV,0CAA0C;QAC1C,IAAI,oBAAoB,GAAG,qBAAqB,CAAC,WAAW,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC,CAAA;QAC1F,oBAAoB,CAAC,WAAW,CAAC,GAAG,EAAE;YACrC,IAAI;gBACH,IAAI,CAAC,cAAc,GAAG,oBAAoB,CAAC,GAAG,EAAE,CAAA;gBAChD,IAAI,CAAC,UAAU,EAAE,CAAC;aAClB;YAAC,OAAO,CAAC,KAAA,EAAE;gBACX,IAAI,GAAG,EAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;gBACvC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;gBACpC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;aAC7B;QACF,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAA;QAC/D,sBAAsB;QACtB,2CAA2C;QAC3C,oCAAoC;QACpC,iCAAiC;QACjC,KAAK;IACN,CAAC;IACD,UAAU;QAET,IAAI,gBAAgB,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC;QACzE,IAAI,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC,6BAA6B,CAAC;QAE9F,yBAAyB;QACzB,IAAI,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE;aACjC,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAElE,0BAA0B;QAC1B,IAAI,YAAY,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE;aAC3C,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;aACjD,cAAc,CAAC,WAAW,CAAC;aAC3B,KAAK,EAAE,CAAC;QACV,mBAAmB;QACnB,IAAI,cAAc,GAAG,IAAI,cAAc,CAAC,OAAO,EAAE;aAC/C,iBAAiB,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;aAChE,KAAK,EAAE,CAAC;QAEV,IAAI,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE;aAC/B,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAA;QAC5D,IAAI,UAAU,GAAG,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAClI,IAAI,YAAY,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;aAC3D,aAAa,CAAC,UAAU,CAAC,CAAC;aAC1B,KAAK,EAAE,CAAC;QAEV,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAEhC,sBAAsB;QACtB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,EAAE,CAAC;QACjC,IAAI,aAAa,GAAG,aAAa,CAAC,OAAO,EAAE;YAC1C,4CAA4C;aAC3C,uBAAuB,CAAC,aAAa,CAAC,yBAAyB,CAAC;aAChE,KAAK,EAAE,CAAA;QAET,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAA;QAC9C,IAAI,YAAY,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE;aAC3C,UAAU,CAAC,OAAO,CAAC;aACnB,UAAU,CAAC,aAAa,CAAC;aACzB,UAAU,CAAC,YAAY,CAAC;aACxB,UAAU,CAAC,YAAY,CAAC;aACxB,WAAW,CAAC,QAAQ,CAAC;aACrB,KAAK,EAAE,CAAC;QAEV,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,uBAAuB,EAAE,CAAA;QACzD,IAAI,KAAK,GAAG,IAAI,CAAA;QAChB,MAAM,QAAS,YAAW,aAAa,CAAC,QAAQ;YAC/C;YAEA,CAAC;YACD,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAG,UAAU;gBAClC,IAAI,KAAK,CAAC,WAAW,EAAE;oBACtB,IAAI,WAAW,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;oBACpC,aAAa;oBACb,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;oBACvB,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;oBAEzB,IAAI,WAAW,IAAI,WAAW,CAAC,WAAW,EAAE;wBAC3C,KAAK,CAAC,qBAAqB,EAAE,CAAC;4BAC7B,KAAK;4BACL,MAAM;4BACN,IAAI,EAAE,KAAK;yBACX,IAAI,2BAA2B,CAAC,CAAA;wBAEjC,KAAK,CAAC,2BAA2B,EAAE,OAAO,EAAE,CAAC;4BAC5C,KAAK;4BACL,MAAM;4BACN,IAAI,EAAE,KAAK;yBACX,IAAI,2BAA2B,CAAC,CAAA;qBACjC;iBACD;gBACD,KAAK,CAAC,KAAK,EAAE,CAAC;YACf,CAAC;YACD,QAAQ,CAAC,0BAA0B,IAAK,IAAI;gBAC3C,aAAa;gBACb,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;YACtB,CAAC;SACD;QACD,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,IAAI,QAAQ,EAAE,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAA;QAEzF,IAAI,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,eAAe,CAChD,UAAU,CAAC,cAAc,EAAE,CAAC,IAAI,cAAc,EAC9C,cAAc,EACd,YAAY;QACZ,WAAW;QACX,gBAAgB;QAChB,eAAe;SACf,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;YACvB,IAAI,SAAS,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,CAAC;YACjE,IAAI,CAAC,OAAO,GAAG,SAAS,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YAC7D,IAAI,CAAC,OAAO,GAAG,SAAS,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YAC7D,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;YAE1B,IAAI,GAAG,EAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;YACvC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;YAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;SAC7B;IAEF,CAAC;IACD,YAAY;QACX,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,CAAA;QAChC,IAAI,CAAC,cAAc,EAAE,QAAQ,EAAE,CAAA;IAChC,CAAC;IACD,6CAA6C;IAC7C,oIAAoI;IACpI,wCAAwC;IACxC,mBAAmB;IACnB,oIAAoI;IACpI,mBAAmB;IACnB,oBAAoB;IACpB,YAAY;IACZ,kBAAkB;IAClB,KAAK;IACL,sDAAsD;IACtD,iBAAiB;IACjB,wBAAwB;IACxB,KAAK;IACL,MAAM;IACN,IAAI;IACJ,SAAS,CAAC,MAAM,EAAG,YAAY,GAAG,EAAE,IAAI,YAAY;QACnD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAA;QACvC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,MAAM,CAAA;QACrD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,QAAQ,CAAA;QAC/C,gDAAgD;IACjD,CAAC;IACD,QAAQ,CAAC,IAAI,EAAG,SAAS;QACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACrB,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI;YAAE,OAAM;QACzE,IAAI,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC3D,CAAC;IACD,YAAY,CAAC,QAAQ,EAAG,cAAc;QACrC,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAA;QAC9B,IAAI,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI;YAAE,OAAM;QACpF,IAAI,CAAC,YAAY,EAAE,CAAA;QACnB,IAAI,CAAC,UAAU,EAAE,CAAA;IAClB,CAAC;IACD,qBAAqB,CAAC,OAAO,EAAG,OAAO,EAAE,cAAc,EAAG,cAAc,EAAE,gBAAgB,EAAG,IAAI,GAAI,OAAO;QAC3G,OAAO,IAAI,CAAA;IACZ,CAAC;IACD,SAAS,CAAC,MAAM,EAAG,eAAe;QACjC,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,OAAO,IAAI,KAAK,EAAE;YACrB,IAAI,CAAC,YAAY,EAAE,CAAA;YACnB,IAAI,CAAC,UAAU,EAAE,CAAA;SACjB;QACD,SAAS;QACT,IAAI,UAAU,GAAG,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE;YACvB,QAAQ,CAAC,MAAM,EAAE,CAAA;SACjB;QACD,QAAQ;QACR,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC;QAE5D,OAAO;QACP,IAAI,QAAQ,GAAG,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;QAC3C,QAAQ,CAAC,qBAAqB,CAAC,MAAM,CAAC,YAAY,IAAI,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,cAAc,CAAC,iBAAiB,CAAC,CAAC;QAEzI,MAAM,aAAa,GAAG,YAAY,CAAC,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAA;QACrG,MAAM,oBAAqB,YAAW,YAAY,CAAC,oBAAoB;YACtE,QAAQ,CAAC,YAAY,CAAC,iBAAiB,EAAG,YAAY,CAAC,iBAAiB;gBACvE,MAAM,CAAC,OAAO,EAAE,CAAC;oBAChB,aAAa,EAAE,SAAS,CAAC,eAAe,EAAE;oBAC1C,OAAO,EAAE,OAAO;oBAChB,MAAM,EAAE,IAAI;iBACZ,IAAI,8BAA8B,CAAC,CAAA;gBACpC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACjB,MAAM,EAAE,IAAI;iBACZ,IAAI,qBAAqB,CAAC,CAAA;YAC5B,CAAC;YACD,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAG,qBAAqB;gBAC3C,MAAM,MAAM,EAAG,qBAAqB,GAAG;oBACtC,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE;iBACtB,CAAA;gBACD,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAA;gBACrB,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAA;YAC1B,CAAC;YACD,QAAQ,CAAC,gBAAgB;YAEzB,CAAC;SACD;QACD,IAAI,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,aAAa,EAAE,aAAa,CAAC,eAAe,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,IAAI,oBAAoB,EAAE,IAAI,YAAY,CAAC,oBAAoB,CAAC,CAAA;IAE5K,CAAC;IACD,OAAO,CAAC,MAAM,EAAG,0BAA0B;QAC1C,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;YAC/B,IAAI;gBACH,IAAI,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;gBACvD,MAAM,CAAC,OAAO,EAAE,CAAC;oBAChB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,MAAM,EAAE,IAAI;iBACZ,IAAI,4BAA4B,CAAC,CAAA;gBAClC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACjB,MAAM,EAAE,IAAI;iBACZ,IAAI,qBAAqB,CAAC,CAAA;aAC3B;YAAC,OAAO,CAAC,KAAA,EAAE;gBACX,MAAM,MAAM,EAAG,qBAAqB,GAAG;oBACtC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;iBACpB,CAAA;gBACD,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAA;gBACzB,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAA;aACrB;SACD;aAAM;YACN,MAAM,MAAM,EAAG,qBAAqB,GAAG;gBACtC,MAAM,EAAE,OAAO;aACf,CAAA;YACD,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAA;YACzB,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAA;SACrB;IACF,CAAC;IACD,WAAW,CAAC,MAAM,EAAG,8BAA8B;QAClD,IAAI,MAAM,CAAC,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,iBAAiB,IAAI,MAAM,CAAC,YAAY,EAAE;YACjF,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,YAAY,CAAA;YAC5C,IAAI,CAAC,YAAY,EAAE,CAAA;YACnB,IAAI,CAAC,UAAU,EAAE,CAAA;SACjB;QACD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;YACxD,MAAM,CAAC,IAAI,EAAE,CAAC;gBACb,MAAM,EAAE,aAAa;aACrB,IAAI,qBAAqB,CAAC,CAAA;YAC3B,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACjB,MAAM,EAAE,aAAa;aACrB,IAAI,qBAAqB,CAAC,CAAA;YAC3B,OAAM;SACN;QACD,SAAS;QACT,IAAI,UAAU,GAAG,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;QAC/C,QAAQ;QACR,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,CAAC;QAChE,IAAI,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAG/E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM;aACxC,gBAAgB,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,EAAE,iBAAiB,CAAC;aACjE,gBAAgB,EAAE;YACnB,eAAe;YACf,KAAK;aACJ,KAAK,CAAC,aAAa,CAAC,eAAe,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,EAAG,gBAAgB,EAAE,EAAE;YACtG,IAAI,WAAW,YAAY,gBAAgB,CAAC,KAAK,EAAE;gBAClD,MAAM,CAAC,OAAO,EAAE,CAAC;oBAChB,MAAM,EAAE,IAAI;iBACZ,IAAI,qBAAqB,CAAC,CAAA;gBAE3B,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBAClD,UAAU,CAAC,GAAG,EAAE;wBACf,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,CAAA;oBACvB,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;iBACnB;aACD;iBAAM,IAAI,WAAW,YAAY,gBAAgB,CAAC,QAAQ,EAAE;gBAC5D,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAA;gBACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;gBACrB,IAAI,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,eAAe,EAAE,CAAC,CAAA;gBACtD,2DAA2D;gBAC3D,IAAI,CAAC,6BAA6B,EAAE,OAAO,EAAE,CAAC;oBAC7C,aAAa;oBACb,MAAM,EAAE,IAAI;iBACZ,IAAI,+BAA+B,CAAC,CAAA;gBAErC,MAAM,CAAC,eAAe,EAAE,CAAC;oBACxB,aAAa;iBACb,IAAI,gCAAgC,CAAC,CAAA;aACtC;QACF,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,UAAU,CAAC,MAAM,EAAG,6BAA6B;QAChD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;YAC3B,MAAM,CAAC,IAAI,EAAE,CAAC;gBACb,MAAM,EAAE,OAAO;aACf,IAAI,qBAAqB,CAAC,CAAA;YAC3B,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACjB,MAAM,EAAE,OAAO;aACf,IAAI,qBAAqB,CAAC,CAAA;YAC3B,OAAM;SACN;QACD,IAAI,CAAC,6BAA6B,GAAG,MAAM,CAAA;QAC3C,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,CAAA;IACvB,CAAC;IACD,aAAa,CAAC,QAAQ,EAAG,qBAAqB,GAAG,IAAI,GAAG,IAAI;QAC3D,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAA;IACtC,CAAC;IAED,qBAAqB,CAAC,MAAM,EAAG,2BAA2B;QACzD,IAAI,CAAC,2BAA2B,GAAG,MAAM,CAAA;IAC1C,CAAC;IAED,kBAAkB,CAAC,MAAO,CAAC,EAAE,8BAA8B;QAC1D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;QACvB,MAAM,EAAE,OAAO,EAAE,CAAC;YACjB,MAAM,EAAE,IAAI;SACZ,IAAI,qBAAqB,CAAC,CAAA;IAC5B,CAAC;IACD,iBAAiB,CAAC,MAAO,CAAC,EAAE,UAAU;QACrC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;QACxB,MAAM,EAAE,OAAO,EAAE,CAAC;YACjB,MAAM,EAAE,IAAI;SACZ,IAAI,qBAAqB,CAAC,CAAA;IAC5B,CAAC;CAED;AAGD,mBAAmB;AACnB,iEAAiE;AACjE,gDAAgD;AAChD,qCAAqC;AACrC,mBAAmB;AACnB,yCAAyC;AACzC,cAAc;AACd,4BAA4B;AAC5B,mDAAmD;AACnD,+EAA+E;AAC/E,uDAAuD;AACvD,qEAAqE;AACrE,yBAAyB;AACzB,2CAA2C;AAC3C,KAAK;AACL,uBAAuB;AACvB,eAAe;AACf,IAAI","sourcesContent":["import ProcessCameraProvider from 'androidx.camera.lifecycle.ProcessCameraProvider'\r\nimport Preview from 'androidx.camera.core.Preview'\r\nimport MirrorMode from 'androidx.camera.core.MirrorMode'\r\nimport PreviewView from 'androidx.camera.view.PreviewView'\r\nimport Context from 'android.content.Context'\r\nimport FrameLayout from 'android.widget.FrameLayout'\r\nimport ViewGroup from 'android.view.ViewGroup'\r\nimport CameraSelector from 'androidx.camera.core.CameraSelector'\r\nimport ImageAnalysis from 'androidx.camera.core.ImageAnalysis'\r\nimport UseCaseGroup from 'androidx.camera.core.UseCaseGroup'\r\nimport ContextCompat from 'androidx.core.content.ContextCompat'\r\n\r\nimport LifecycleOwner from 'androidx.lifecycle.LifecycleOwner'\r\nimport ImageCapture from 'androidx.camera.core.ImageCapture'\r\nimport Size from 'android.util.Size'\r\nimport ImageCaptureException from 'androidx.camera.core.ImageCaptureException'\r\nimport File from 'java.io.File'\r\n\r\nimport ImageProxy from 'androidx.camera.core.ImageProxy';\r\nimport CameraControl from 'androidx.camera.core.CameraControl';\r\n\r\nimport VideoCapture from 'androidx.camera.video.VideoCapture'\r\nimport Recorder from 'androidx.camera.video.Recorder'\r\nimport Recording from 'androidx.camera.video.Recording'\r\nimport FileOutputOptions from 'androidx.camera.video.FileOutputOptions'\r\nimport Quality from 'androidx.camera.video.Quality'\r\nimport QualitySelector from 'androidx.camera.video.QualitySelector'\r\nimport VideoRecordEvent from 'androidx.camera.video.VideoRecordEvent'\r\n\r\n// import Bitmap from 'android.graphics.Bitmap';\r\n// import FileOutputStream from 'java.io.FileOutputStream';\r\n// import MediaMetadataRetriever from 'android.media.MediaMetadataRetriever';\r\n\r\nimport ExecutorService from 'java.util.concurrent.ExecutorService'\r\nimport Executors from 'java.util.concurrent.Executors'\r\nimport ImageFormat from 'android.graphics.ImageFormat';\r\n\r\nimport {\r\n\tTakePhotoOption,\r\n\tGeneralCallbackResult,\r\n\tTakePhotoSuccessCallbackResult,\r\n\tCameraContextSetZoomOption,\r\n\tSetZoomSuccessCallbackResult,\r\n\tCameraContextStopRecordOption,\r\n\tCameraContextStartRecordOption,\r\n\tStartRecordTimeoutCallbackResult,\r\n\tStopRecordSuccessCallbackResult,\r\n\tOnCameraFrameCallback,\r\n\tOnCameraFrameCallbackResult,\r\n\tCameraFrameListenerStartOption,\r\n\tStopOption,\r\n\r\n\tCameraConfig,\r\n\tFlashMode,\r\n\tDevicePosition,\r\n\tResolution,\r\n\t//FrameSize,\r\n\tQualityType,\r\n\tOnCameraFrameListenerOption\r\n} from '../interface'\r\nimport Bitmap from \"android.graphics.Bitmap\";\r\nimport FileOutputStream from \"java.io.FileOutputStream\";\r\n\r\nconst FLASH_MODE_MAP = new Map([\r\n\t['auto', ImageCapture.FLASH_MODE_AUTO],\r\n\t['on', ImageCapture.FLASH_MODE_ON],\r\n\t['torch', ImageCapture.FLASH_MODE_ON],\r\n\t['off', ImageCapture.FLASH_MODE_OFF],\r\n])\r\nconst DEVICE_POSITION_MAP = new Map([\r\n\t['back', CameraSelector.LENS_FACING_BACK],\r\n\t['front', CameraSelector.LENS_FACING_FRONT],\r\n])\r\n\r\n\r\nconst RESOLUTION_MAP = new Map([\r\n\t['low', Quality.LOWEST],\r\n\t['medium', Quality.HD],\r\n\t['high', Quality.HIGHEST],\r\n])\r\n\r\nconst QUALITY_MAP = new Map([\r\n\t[\"high\", ImageCapture.CAPTURE_MODE_MAXIMIZE_QUALITY],\r\n\t[\"low\", ImageCapture.CAPTURE_MODE_MINIMIZE_LATENCY],\r\n])\r\n\r\nconst MIRROR_MODE = new Map([\r\n\t[true, MirrorMode.MIRROR_MODE_ON],\r\n\t[false, MirrorMode.MIRROR_MODE_OFF],\r\n])\r\n\r\nexport class CameraView extends FrameLayout {\r\n\tprivate previewView : PreviewView;\r\n\tpublic cameraProvider : ProcessCameraProvider | null = null;\r\n\tpublic cameraControl : CameraControl | null = null;\r\n\tprivate imageCapture : ImageCapture | null = null\r\n\tprivate videoCapture : VideoCapture | null = null\r\n\tprivate recording : Recording | null = null\r\n\tprivate comp : UTSComponent;\r\n\tprivate flashMode : FlashMode = 'auto'\r\n\tprivate devicePosition : DevicePosition = 'back'\r\n\tprivate resolution : Resolution = 'medium'\r\n\t// private frameSize : FrameSize = 'medium'\r\n\tprivate quality : QualityType = 'normal'\r\n\tprivate videoFile : File | null = null\r\n\tmaxZoom : Float = (1).toFloat()\r\n\tminZoom : Float = (1).toFloat()\r\n\tprivate initialized : boolean = false\r\n\tprivate isListening : boolean = false\r\n\tprivate videoSelfieMirror : boolean | null = null\r\n\tprivate cameraContextStopRecordOption : CameraContextStopRecordOption | null = null\r\n\tprivate onCameraFrameCallback : OnCameraFrameCallback | null = null\r\n\tprivate cameraExecutor : ExecutorService | null = null\r\n\tprivate onCameraFrameListenerOption : OnCameraFrameListenerOption | null = null;\r\n\r\n\tconstructor(context : Context, comp : UTSComponent, config : CameraConfig = {} as CameraConfig) {\r\n\t\tsuper(context);\r\n\t\tthis.comp = comp\r\n\t\tthis.flashMode = config.flash ?? 'auto'\r\n\t\tthis.devicePosition = config.devicePosition ?? 'back'\r\n\t\tthis.resolution = config.resolution ?? 'medium'\r\n\t\t// this.frameSize = config.frameSize ?? 'medium'\r\n\r\n\t\tthis.previewView = new PreviewView(context);\r\n\t\tlet layoutParam = new FrameLayout.LayoutParams(\r\n\t\t\tViewGroup.LayoutParams.MATCH_PARENT,\r\n\t\t\tViewGroup.LayoutParams.MATCH_PARENT);\r\n\t\tthis.addView(this.previewView, layoutParam);\r\n\t\tthis.setupCamera()\r\n\t}\r\n\tsetupCamera() {\r\n\t\t// this.checkSelfPermission().then(() => {\r\n\t\tlet cameraProviderFuture = ProcessCameraProvider.getInstance(UTSAndroid.getUniActivity()!)\r\n\t\tcameraProviderFuture.addListener(() => {\r\n\t\t\ttry {\r\n\t\t\t\tthis.cameraProvider = cameraProviderFuture.get()\r\n\t\t\t\tthis.bindCamera();\r\n\t\t\t} catch (e) {\r\n\t\t\t\tlet ret : Map = new Map();\r\n\t\t\t\tret.set(\"errMsg\", JSON.stringify(e))\r\n\t\t\t\tthis.comp.$emit('error', ret)\r\n\t\t\t}\r\n\t\t}, ContextCompat.getMainExecutor(UTSAndroid.getUniActivity()!))\r\n\t\t// }).catch((err) => {\r\n\t\t// \tlet ret : Map = new Map();\r\n\t\t// \tret.set(\"errMsg\", err ?? '权限不足')\r\n\t\t// \tthis.comp.$emit('error', ret)\r\n\t\t// })\r\n\t}\r\n\tbindCamera() {\r\n\r\n\t\tlet targetResolution = RESOLUTION_MAP.get(this.resolution) ?? Quality.HD;\r\n\t\tlet captureMode = QUALITY_MAP.get(this.quality) ?? ImageCapture.CAPTURE_MODE_MAXIMIZE_QUALITY;\r\n\r\n\t\t// 创建一个Preview对象,用于显示相机预览\r\n\t\tlet preview = new Preview.Builder()\r\n\t\t\t.build();\r\n\t\tpreview.setSurfaceProvider(this.previewView.getSurfaceProvider());\r\n\r\n\t\t// 创建一个ImageCapture对象,用于拍照\r\n\t\tlet imageCapture = new ImageCapture.Builder()\r\n\t\t\t.setFlashMode(FLASH_MODE_MAP.get(this.flashMode)!)\r\n\t\t\t.setCaptureMode(captureMode)\r\n\t\t\t.build();\r\n\t\t// \t选择要使用的相机(后置或前置)\r\n\t\tlet cameraSelector = new CameraSelector.Builder()\r\n\t\t\t.requireLensFacing(DEVICE_POSITION_MAP.get(this.devicePosition)!)\r\n\t\t\t.build();\r\n\r\n\t\tlet recorder = Recorder.Builder()\r\n\t\t\t.setQualitySelector(QualitySelector.from(targetResolution))\r\n\t\tlet mirrorMode = this.videoSelfieMirror == null ? MirrorMode.MIRROR_MODE_ON_FRONT_ONLY : MIRROR_MODE.get(this.videoSelfieMirror!);\r\n\t\tlet videoCapture = new VideoCapture.Builder(recorder.build())\r\n\t\t\t.setMirrorMode(mirrorMode!)\r\n\t\t\t.build();\r\n\r\n\t\tthis.videoCapture = videoCapture\r\n\r\n\t\t// 将参数应用到 VideoCapture\r\n\t\tthis.imageCapture = imageCapture;\r\n\t\tthis.cameraProvider!.unbindAll();\r\n\t\tlet imageAnalysis = ImageAnalysis.Builder()\r\n\t\t\t// .setTargetResolution(new Size(1280, 720))\r\n\t\t\t.setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)\r\n\t\t\t.build()\r\n\r\n\t\tlet viewPort = this.previewView.getViewPort()!\r\n\t\tlet useCaseGroup = new UseCaseGroup.Builder()\r\n\t\t\t.addUseCase(preview)\r\n\t\t\t.addUseCase(imageAnalysis)\r\n\t\t\t.addUseCase(imageCapture)\r\n\t\t\t.addUseCase(videoCapture)\r\n\t\t\t.setViewPort(viewPort)\r\n\t\t\t.build();\r\n\r\n\t\tthis.cameraExecutor = Executors.newSingleThreadExecutor()\r\n\t\tlet _this = this\r\n\t\tclass Analyzer implements ImageAnalysis.Analyzer {\r\n\t\t\tconstructor() {\r\n\r\n\t\t\t}\r\n\t\t\toverride analyze(image : ImageProxy) {\r\n\t\t\t\tif (_this.isListening) {\r\n\t\t\t\t\tlet imageFormat = image.getFormat();\r\n\t\t\t\t\t// 获取图像的宽度和高度\r\n\t\t\t\t\tlet width = image.width\r\n\t\t\t\t\tlet height = image.height\r\n\r\n\t\t\t\t\tif (imageFormat == ImageFormat.YUV_420_888) {\r\n\t\t\t\t\t\t_this.onCameraFrameCallback?.({\r\n\t\t\t\t\t\t\twidth,\r\n\t\t\t\t\t\t\theight,\r\n\t\t\t\t\t\t\tdata: image\r\n\t\t\t\t\t\t} as OnCameraFrameCallbackResult)\r\n\r\n\t\t\t\t\t\t_this.onCameraFrameListenerOption?.success?.({\r\n\t\t\t\t\t\t\twidth,\r\n\t\t\t\t\t\t\theight,\r\n\t\t\t\t\t\t\tdata: image\r\n\t\t\t\t\t\t} as OnCameraFrameCallbackResult)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\timage.close();\r\n\t\t\t}\r\n\t\t\toverride getDefaultTargetResolution() : Size {\r\n\t\t\t\t// 返回默认的目标分辨率\r\n\t\t\t\treturn Size(640, 480)\r\n\t\t\t}\r\n\t\t}\r\n\t\timageAnalysis.setAnalyzer(this.cameraExecutor!, new Analyzer() as ImageAnalysis.Analyzer)\r\n\r\n\t\tlet camera = this.cameraProvider!.bindToLifecycle(\r\n\t\t\tUTSAndroid.getUniActivity()! as LifecycleOwner,\r\n\t\t\tcameraSelector,\r\n\t\t\tuseCaseGroup\r\n\t\t\t// preview,\r\n\t\t\t// imageCapture,\r\n\t\t\t// videoCapture\r\n\t\t);\r\n\t\tthis.cameraControl = camera.getCameraControl();\r\n\t\tif (!this.initialized) {\r\n\t\t\tthis.initialized = true\r\n\t\t\tlet zoomState = camera.getCameraInfo().getZoomState().getValue();\r\n\t\t\tthis.maxZoom = zoomState?.getMaxZoomRatio() ?? (1).toFloat();\r\n\t\t\tthis.minZoom = zoomState?.getMinZoomRatio() ?? (1).toFloat();\r\n\t\t\tlet maxZoom = this.maxZoom\r\n\r\n\t\t\tlet ret : Map = new Map();\r\n\t\t\tret.set(\"maxZoom\", maxZoom)\r\n\t\t\tthis.comp.$emit('ready', ret)\r\n\t\t}\r\n\r\n\t}\r\n\tunbindCamera() {\r\n\t\tthis.cameraProvider?.unbindAll()\r\n\t\tthis.cameraExecutor?.shutdown()\r\n\t}\r\n\t// checkSelfPermission() : Promise {\r\n\t// let permissionNeed = [\"android.permission.CAMERA\", \"android.permission.RECORD_AUDIO\", \"android.permission.READ_EXTERNAL_STORAGE\"]\r\n\t// return new Promise((resoleve, _) => {\r\n\t// \tresoleve(true);\r\n\t// UTSAndroid.requestSystemPermission(UTSAndroid.getUniActivity()!, permissionNeed, function (allRight : boolean, list : string[]) {\r\n\t// \tif (allRight) {\r\n\t// \t\tresoleve(true);\r\n\t// \t} else {\r\n\t// \t\treject(list);\r\n\t// \t}\r\n\t// }, function (_ : boolean, grantedList : string[]) {\r\n\t// \t//grantedList\r\n\t// \treject(grantedList);\r\n\t// })\r\n\t// \t})\r\n\t// }\r\n\tsetConfig(config : CameraConfig = {} as CameraConfig) {\r\n\t\tthis.flashMode = config.flash ?? 'auto'\r\n\t\tthis.devicePosition = config.devicePosition ?? 'back'\r\n\t\tthis.resolution = config.resolution ?? 'medium'\r\n\t\t// this.frameSize = config.frameSize ?? 'medium'\r\n\t}\r\n\tsetFlash(mode : FlashMode) {\r\n\t\tthis.flashMode = mode\r\n\t\tif (FLASH_MODE_MAP.get(mode) == null || this.imageCapture == null) return\r\n\t\tthis.imageCapture!.setFlashMode(FLASH_MODE_MAP.get(mode)!)\r\n\t}\r\n\tswitchCamera(position : DevicePosition) {\r\n\t\tthis.devicePosition = position\r\n\t\tif (DEVICE_POSITION_MAP.get(position) == null || this.cameraProvider == null) return\r\n\t\tthis.unbindCamera()\r\n\t\tthis.bindCamera()\r\n\t}\r\n\tisResolutionSupported(context : Context, cameraSelector : CameraSelector, targetResolution : Size) : boolean {\r\n\t\treturn true\r\n\t}\r\n\ttakePhoto(option : TakePhotoOption) {\r\n\t\tlet quality = option.quality ?? \"high\";\r\n\t\tthis.quality = quality;\r\n\t\tif (quality == 'low') {\r\n\t\t\tthis.unbindCamera()\r\n\t\t\tthis.bindCamera()\r\n\t\t}\r\n\t\t// 设置输出目录\r\n\t\tlet privateDir = UTSAndroid.getAppCachePath()!;\r\n\t\tconst tempFile = new File(privateDir);\r\n\t\tif (!tempFile.exists()) {\r\n\t\t\ttempFile.mkdirs()\r\n\t\t}\r\n\t\t// 设置文件名\r\n\t\tconst photoFile = new File(privateDir, Date.now() + '.png');\r\n\r\n\t\t// 处理镜像\r\n\t\tlet metadata = new ImageCapture.Metadata();\r\n\t\tmetadata.setReversedHorizontal(option.selfieMirror ?? DEVICE_POSITION_MAP.get(this.devicePosition)! == CameraSelector.LENS_FACING_FRONT);\r\n\r\n\t\tconst outputOptions = ImageCapture.OutputFileOptions.Builder(photoFile).setMetadata(metadata).build()\r\n\t\tclass OnImageSavedCallback implements ImageCapture.OnImageSavedCallback {\r\n\t\t\toverride onImageSaved(outputFileResults : ImageCapture.OutputFileResults) {\r\n\t\t\t\toption.success?.({\r\n\t\t\t\t\ttempImagePath: photoFile.getAbsolutePath(),\r\n\t\t\t\t\tquality: quality,\r\n\t\t\t\t\terrMsg: 'ok'\r\n\t\t\t\t} as TakePhotoSuccessCallbackResult)\r\n\t\t\t\toption.complete?.({\r\n\t\t\t\t\terrMsg: 'ok'\r\n\t\t\t\t} as GeneralCallbackResult)\r\n\t\t\t}\r\n\t\t\toverride onError(err : ImageCaptureException) {\r\n\t\t\t\tconst result : GeneralCallbackResult = {\r\n\t\t\t\t\terrMsg: err.toString()\r\n\t\t\t\t}\r\n\t\t\t\toption.fail?.(result)\r\n\t\t\t\toption.complete?.(result)\r\n\t\t\t}\r\n\t\t\toverride onCaptureStarted() {\r\n\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.imageCapture!.takePicture(outputOptions, ContextCompat.getMainExecutor(UTSAndroid.getUniActivity()!), new OnImageSavedCallback() as ImageCapture.OnImageSavedCallback)\r\n\r\n\t}\r\n\tsetZoom(option : CameraContextSetZoomOption) {\r\n\t\tif (this.cameraControl != null) {\r\n\t\t\ttry {\r\n\t\t\t\tthis.cameraControl!.setZoomRatio(option.zoom.toFloat())\r\n\t\t\t\toption.success?.({\r\n\t\t\t\t\tzoom: option.zoom,\r\n\t\t\t\t\terrMsg: 'ok'\r\n\t\t\t\t} as SetZoomSuccessCallbackResult)\r\n\t\t\t\toption.complete?.({\r\n\t\t\t\t\terrMsg: 'ok'\r\n\t\t\t\t} as GeneralCallbackResult)\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconst result : GeneralCallbackResult = {\r\n\t\t\t\t\terrMsg: e.toString()\r\n\t\t\t\t}\r\n\t\t\t\toption.complete?.(result)\r\n\t\t\t\toption.fail?.(result)\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tconst result : GeneralCallbackResult = {\r\n\t\t\t\terrMsg: '相机不存在'\r\n\t\t\t}\r\n\t\t\toption.complete?.(result)\r\n\t\t\toption.fail?.(result)\r\n\t\t}\r\n\t}\r\n\tstartRecord(option : CameraContextStartRecordOption) {\r\n\t\tif (option.selfieMirror != null && this.videoSelfieMirror != option.selfieMirror) {\r\n\t\t\tthis.videoSelfieMirror = option.selfieMirror\r\n\t\t\tthis.unbindCamera()\r\n\t\t\tthis.bindCamera()\r\n\t\t}\r\n\t\tif (this.recording != null || this.videoCapture == null) {\r\n\t\t\toption.fail?.({\r\n\t\t\t\terrMsg: '已经在录制或相机不存在'\r\n\t\t\t} as GeneralCallbackResult)\r\n\t\t\toption.complete?.({\r\n\t\t\t\terrMsg: '已经在录制或相机不存在'\r\n\t\t\t} as GeneralCallbackResult)\r\n\t\t\treturn\r\n\t\t}\r\n\t\t// 设置输出目录\r\n\t\tlet privateDir = UTSAndroid.getAppCachePath()!;\r\n\t\t// 设置文件名\r\n\t\tthis.videoFile = new File(privateDir, Date.now() + 'video.mp4');\r\n\t\tlet outputFileOptions = new FileOutputOptions.Builder(this.videoFile!).build();\r\n\r\n\r\n\t\tthis.recording = this.videoCapture!.output\r\n\t\t\t.prepareRecording(UTSAndroid.getUniActivity()!, outputFileOptions)\r\n\t\t\t.withAudioEnabled()\r\n\t\t\t// .apply(()=>{\r\n\t\t\t// })\r\n\t\t\t.start(ContextCompat.getMainExecutor(UTSAndroid.getUniActivity()!), (recordEvent : VideoRecordEvent) => {\r\n\t\t\t\tif (recordEvent instanceof VideoRecordEvent.Start) {\r\n\t\t\t\t\toption.success?.({\r\n\t\t\t\t\t\terrMsg: 'ok'\r\n\t\t\t\t\t} as GeneralCallbackResult)\r\n\r\n\t\t\t\t\tif (option.timeout != null && option.timeout! > 0) {\r\n\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\tthis.recording?.stop()\r\n\t\t\t\t\t\t}, option.timeout!)\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (recordEvent instanceof VideoRecordEvent.Finalize) {\r\n\t\t\t\t\tthis.recording?.close()\r\n\t\t\t\t\tthis.recording = null\r\n\t\t\t\t\tlet tempVideoPath = this.videoFile?.getAbsolutePath()!\r\n\t\t\t\t\t//let tempThumbPath = extractThumbnail(tempVideoPath) ?? ''\r\n\t\t\t\t\tthis.cameraContextStopRecordOption?.success?.({\r\n\t\t\t\t\t\ttempVideoPath,\r\n\t\t\t\t\t\terrMsg: 'ok'\r\n\t\t\t\t\t} as StopRecordSuccessCallbackResult)\r\n\r\n\t\t\t\t\toption.timeoutCallback?.({\r\n\t\t\t\t\t\ttempVideoPath,\r\n\t\t\t\t\t} as StartRecordTimeoutCallbackResult)\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t}\r\n\tstopRecord(option : CameraContextStopRecordOption) {\r\n\t\tif (this.recording == null) {\r\n\t\t\toption.fail?.({\r\n\t\t\t\terrMsg: '未开始录制'\r\n\t\t\t} as GeneralCallbackResult)\r\n\t\t\toption.complete?.({\r\n\t\t\t\terrMsg: '未开始录制'\r\n\t\t\t} as GeneralCallbackResult)\r\n\t\t\treturn\r\n\t\t}\r\n\t\tthis.cameraContextStopRecordOption = option\r\n\t\tthis.recording?.stop()\r\n\t}\r\n\tonCameraFrame(callback : OnCameraFrameCallback | null = null) {\r\n\t\tthis.onCameraFrameCallback = callback\r\n\t}\r\n\r\n\tonCameraFrameListener(option : OnCameraFrameListenerOption) {\r\n\t\tthis.onCameraFrameListenerOption = option\r\n\t}\r\n\r\n\tcameraFrameOnStart(option ?: CameraFrameListenerStartOption) {\r\n\t\tthis.isListening = true\r\n\t\toption?.success?.({\r\n\t\t\terrMsg: 'ok'\r\n\t\t} as GeneralCallbackResult)\r\n\t}\r\n\tcameraFrameOnStop(option ?: StopOption) {\r\n\t\tthis.isListening = false\r\n\t\toption?.success?.({\r\n\t\t\terrMsg: 'ok'\r\n\t\t} as GeneralCallbackResult)\r\n\t}\r\n\r\n}\r\n\r\n\r\n// // 从视频文件中提取封面的函数\r\n// function extractThumbnail(videoUri : string) : string | null {\r\n// \tlet retriever = new MediaMetadataRetriever()\r\n// \tretriever.setDataSource(videoUri)\r\n// \t// 提取视频的某一帧作为封面\r\n// \tlet thumbnail = retriever.frameAtTime\r\n// \t// 保存封面到文件\r\n// \tif (thumbnail != null) {\r\n// \t\tlet privateDir = UTSAndroid.getAppCachePath();\r\n// \t\tconst thumbnailFile = new File(privateDir, Date.now() + '_thumbnail.jpg');\r\n// \t\tlet outputStream = FileOutputStream(thumbnailFile)\r\n// \t\tthumbnail.compress(Bitmap.CompressFormat.JPEG, 90, outputStream)\r\n// \t\toutputStream.close()\r\n// \t\treturn thumbnailFile.getAbsolutePath()\r\n// \t}\r\n// \tretriever.release()\r\n// \treturn null\r\n// }"]}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/index.uts b/unpackage/dist/dev/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/index.uts
deleted file mode 100644
index bf1b762..0000000
--- a/unpackage/dist/dev/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/index.uts
+++ /dev/null
@@ -1,215 +0,0 @@
-import { CameraView } from './camera';
-import { TakePhotoOption, GeneralCallbackResult, CameraContextSetZoomOption, CameraContextStartRecordOption, CameraContextStopRecordOption,
-// CameraFrameListener,
-OnCameraFrameCallback,
-// OnCameraFrameCallbackResult,
-CameraFrameListenerStartOption, StopOption, TakePhoto, SetZoom, StartRecord, StopRecord, StartCameraFrame, StopCameraFrame, OnCameraFrameListenerOption, SwitchOption, SwitchCamera } from '../interface';
-import { CameraManager } from "./CameraManager";
-class CameraFrameListener {
- context!: CameraContext;
- constructor(context: CameraContext) {
- this.context = context;
- }
- start(): void;
- start(option?: CameraFrameListenerStartOption) {
- this.context.getCamera().then((camera: CameraView) => {
- camera.cameraFrameOnStart(option);
- });
- }
- stop(): void;
- stop(option?: StopOption) {
- this.context.getCamera().then((camera: CameraView) => {
- camera.cameraFrameOnStop(option);
- });
- }
-}
-class CameraContext {
- private mCameraFrameListener: CameraFrameListener | null = null;
- constructor() {
- }
- getCamera(): Promise {
- let cameraPreview = CameraManager.getInstance().getCameraView();
- if (cameraPreview != null) {
- return Promise.resolve(cameraPreview);
- }
- let resolveFunc: ((res: CameraView) => void) | null = null;
- let rejectFunc: ((res: string) => void) | null = null;
- let maxAttempts: number = 5;
- let currentAttempt: number = 0;
- function attemptGetCamera() {
- let camera = CameraManager.getInstance().getCameraView();
- if (camera != null) {
- resolveFunc?.(camera);
- }
- else if (currentAttempt < maxAttempts) {
- currentAttempt++;
- setTimeout(() => {
- attemptGetCamera();
- }, 100);
- }
- else {
- rejectFunc?.('Camera not found after multiple attempts');
- }
- }
- return new Promise((resolve, reject) => {
- resolveFunc = resolve;
- rejectFunc = reject;
- attemptGetCamera();
- });
- }
- takePhoto(option: TakePhotoOption) {
- this.getCamera().then((camera: CameraView) => {
- camera.takePhoto(option);
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- });
- }
- setZoom(option: CameraContextSetZoomOption) {
- this.getCamera().then((camera: CameraView) => {
- camera.setZoom(option);
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- });
- }
- startRecord(option: CameraContextStartRecordOption) {
- this.getCamera().then((camera: CameraView) => {
- camera.startRecord(option);
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- });
- }
- stopRecord(option: CameraContextStopRecordOption) {
- this.getCamera().then((camera: CameraView) => {
- camera.stopRecord(option);
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- });
- }
- onCameraFrame(): CameraFrameListener;
- onCameraFrame(callback: OnCameraFrameCallback | null = null): CameraFrameListener {
- if (this.mCameraFrameListener == null) {
- this.mCameraFrameListener = new CameraFrameListener(this);
- }
- this.getCamera().then((camera: CameraView) => {
- camera.onCameraFrame(callback);
- });
- return this.mCameraFrameListener!;
- }
- //////////////////////////////////////////////////////
- onCameraFrameListener(option: OnCameraFrameListenerOption) {
- this.getCamera().then((camera: CameraView) => {
- camera.onCameraFrameListener(option);
- }).catch(() => {
- __f__('log', 'at uni_modules/Skin-cameraUTS/utssdk/app-android/index.uts:145', "未找到相机");
- });
- }
- cameraFrameOnStart(option: CameraFrameListenerStartOption) {
- this.getCamera().then((camera: CameraView) => {
- camera.cameraFrameOnStart(option);
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- });
- }
- cameraFrameOnStop(option: StopOption) {
- this.getCamera().then((camera: CameraView) => {
- camera.cameraFrameOnStop(option);
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- });
- }
- switchCamera(option: SwitchOption) {
- this.getCamera().then((camera: CameraView) => {
- camera.switchCamera(option.position);
- option.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult);
- }).catch(() => {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- });
- }
-}
-let context: CameraContext = new CameraContext();
-export function createCameraContext(): CameraContext {
- return context;
-}
-//////////////////////////////////////////////////////////////////////////////////////////////////
-export const takePhoto: TakePhoto = function (options: TakePhotoOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.takePhoto(options);
- }, null);
-};
-export const setZoom: SetZoom = function (options: CameraContextSetZoomOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.setZoom(options);
- }, null);
-};
-export const startRecord: StartRecord = function (options: CameraContextStartRecordOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.startRecord(options);
- }, null);
-};
-export const stopRecord: StopRecord = function (options: CameraContextStopRecordOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.stopRecord(options);
- }, null);
-};
-@UTSJS.keepAlive
-export function onCameraFrameListener(options: OnCameraFrameListenerOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.onCameraFrameListener(options);
- }, null);
-}
-export const startCameraFrame: StartCameraFrame = function (options: CameraFrameListenerStartOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.cameraFrameOnStart(options);
- }, null);
-};
-export const stopCameraFrame: StopCameraFrame = function (options: StopOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.cameraFrameOnStop(options);
- }, null);
-};
-export const switchCamera: SwitchCamera = function (options: SwitchOption) {
- UTSAndroid.getDispatcher("main").async(function (_) {
- context.switchCamera(options);
- }, null);
-};
-//# sourceMappingURL=index.uts.map
\ No newline at end of file
diff --git a/unpackage/dist/dev/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/index.uts.map b/unpackage/dist/dev/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/index.uts.map
deleted file mode 100644
index eae0178..0000000
--- a/unpackage/dist/dev/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/index.uts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.uts","sourceRoot":"","sources":["uni_modules/Skin-cameraUTS/utssdk/app-android/index.uts"],"names":[],"mappings":"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","sourcesContent":["import { CameraView } from './camera'\nimport {\n\tTakePhotoOption,\n\tGeneralCallbackResult,\n\tCameraContextSetZoomOption,\n\tCameraContextStartRecordOption,\n\tCameraContextStopRecordOption,\n\t// CameraFrameListener,\n\tOnCameraFrameCallback,\n\t// OnCameraFrameCallbackResult,\n\tCameraFrameListenerStartOption,\n\tStopOption,\n\tTakePhoto,\n\tSetZoom,\n\tStartRecord,\n\tStopRecord,\n\tStartCameraFrame,\n\tStopCameraFrame,\n\tOnCameraFrameListenerOption,\n\tSwitchOption,\n\tSwitchCamera\n} from '../interface'\nimport { CameraManager } from \"./CameraManager\";\n\n\nclass CameraFrameListener {\n\tcontext : CameraContext\n\tconstructor(context : CameraContext) {\n\t\tthis.context = context\n\t}\n\tstart() : void\n\tstart(option ?: CameraFrameListenerStartOption) {\n\t\tthis.context.getCamera().then((camera : CameraView) => {\n\t\t\tcamera.cameraFrameOnStart(option)\n\t\t})\n\t}\n\tstop() : void\n\tstop(option ?: StopOption) {\n\t\tthis.context.getCamera().then((camera : CameraView) => {\n\t\t\tcamera.cameraFrameOnStop(option)\n\t\t})\n\t}\n}\n\nclass CameraContext {\n\tprivate mCameraFrameListener : CameraFrameListener | null = null\n\tconstructor() {\n\t}\n\tgetCamera() : Promise {\n\t\tlet cameraPreview = CameraManager.getInstance().getCameraView()\n\t\tif (cameraPreview != null) {\n\t\t\treturn Promise.resolve(cameraPreview);\n\t\t}\n\t\tlet resolveFunc : ((res : CameraView) => void) | null = null\n\t\tlet rejectFunc : ((res : string) => void) | null = null\n\n\t\tlet maxAttempts : number = 5\n\t\tlet currentAttempt : number = 0\n\n\t\tfunction attemptGetCamera() {\n\t\t\tlet camera = CameraManager.getInstance().getCameraView()\n\t\t\tif (camera !== null) {\n\t\t\t\tresolveFunc?.(camera)\n\t\t\t} else if (currentAttempt < maxAttempts) {\n\t\t\t\tcurrentAttempt++\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tattemptGetCamera()\n\t\t\t\t}, 100)\n\t\t\t} else {\n\t\t\t\trejectFunc?.('Camera not found after multiple attempts')\n\t\t\t}\n\t\t}\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tresolveFunc = resolve\n\t\t\trejectFunc = reject\n\t\t\tattemptGetCamera()\n\t\t})\n\t}\n\n\n\ttakePhoto(option : TakePhotoOption) {\n\t\tthis.getCamera().then((camera : CameraView) => {\n\t\t\tcamera.takePhoto(option)\n\t\t}).catch(() => {\n\t\t\toption.fail?.({\n\t\t\t\terrMsg: '未找到相机'\n\t\t\t} as GeneralCallbackResult)\n\t\t\toption.complete?.({\n\t\t\t\terrMsg: '未找到相机'\n\t\t\t} as GeneralCallbackResult)\n\t\t})\n\n\t}\n\tsetZoom(option : CameraContextSetZoomOption) {\n\t\tthis.getCamera().then((camera : CameraView) => {\n\t\t\tcamera.setZoom(option)\n\t\t}).catch(() => {\n\t\t\toption.fail?.({\n\t\t\t\terrMsg: '未找到相机'\n\t\t\t} as GeneralCallbackResult)\n\t\t\toption.complete?.({\n\t\t\t\terrMsg: '未找到相机'\n\t\t\t} as GeneralCallbackResult)\n\t\t})\n\t}\n\tstartRecord(option : CameraContextStartRecordOption) {\n\t\tthis.getCamera().then((camera : CameraView) => {\n\t\t\tcamera.startRecord(option)\n\t\t}).catch(() => {\n\t\t\toption.fail?.({\n\t\t\t\terrMsg: '未找到相机'\n\t\t\t} as GeneralCallbackResult)\n\t\t\toption.complete?.({\n\t\t\t\terrMsg: '未找到相机'\n\t\t\t} as GeneralCallbackResult)\n\t\t})\n\t}\n\tstopRecord(option : CameraContextStopRecordOption) {\n\t\tthis.getCamera().then((camera : CameraView) => {\n\t\t\tcamera.stopRecord(option)\n\t\t}).catch(() => {\n\t\t\toption.fail?.({\n\t\t\t\terrMsg: '未找到相机'\n\t\t\t} as GeneralCallbackResult)\n\t\t\toption.complete?.({\n\t\t\t\terrMsg: '未找到相机'\n\t\t\t} as GeneralCallbackResult)\n\t\t})\n\t}\n\tonCameraFrame() : CameraFrameListener\n\tonCameraFrame(callback : OnCameraFrameCallback | null = null) : CameraFrameListener {\n\t\tif (this.mCameraFrameListener == null) {\n\t\t\tthis.mCameraFrameListener = new CameraFrameListener(this)\n\t\t}\n\t\tthis.getCamera().then((camera : CameraView) => {\n\t\t\tcamera.onCameraFrame(callback)\n\t\t})\n\t\treturn this.mCameraFrameListener!\n\t}\n\t//////////////////////////////////////////////////////\n\tonCameraFrameListener(option : OnCameraFrameListenerOption) {\n\t\tthis.getCamera().then((camera : CameraView) => {\n\t\t\tcamera.onCameraFrameListener(option)\n\t\t}).catch(() => {\n\t\t\t__f__('log','at uni_modules/Skin-cameraUTS/utssdk/app-android/index.uts:145',\"未找到相机\")\n\t\t})\n\t}\n\n\tcameraFrameOnStart(option : CameraFrameListenerStartOption) {\n\t\tthis.getCamera().then((camera : CameraView) => {\n\t\t\tcamera.cameraFrameOnStart(option)\n\t\t}).catch(() => {\n\t\t\toption.fail?.({\n\t\t\t\terrMsg: '未找到相机'\n\t\t\t} as GeneralCallbackResult)\n\t\t\toption.complete?.({\n\t\t\t\terrMsg: '未找到相机'\n\t\t\t} as GeneralCallbackResult)\n\t\t})\n\t}\n\n\tcameraFrameOnStop(option : StopOption) {\n\t\tthis.getCamera().then((camera : CameraView) => {\n\t\t\tcamera.cameraFrameOnStop(option)\n\t\t}).catch(() => {\n\t\t\toption.fail?.({\n\t\t\t\terrMsg: '未找到相机'\n\t\t\t} as GeneralCallbackResult)\n\t\t\toption.complete?.({\n\t\t\t\terrMsg: '未找到相机'\n\t\t\t} as GeneralCallbackResult)\n\t\t})\n\t}\n\n\tswitchCamera(option : SwitchOption) {\n\t\tthis.getCamera().then((camera : CameraView) => {\n\t\t\tcamera.switchCamera(option.position)\n\n\t\t\toption.success?.({\n\t\t\t\terrMsg: 'ok'\n\t\t\t} as GeneralCallbackResult)\n\t\t\toption.complete?.({\n\t\t\t\terrMsg: 'ok'\n\t\t\t} as GeneralCallbackResult)\n\t\t}).catch(() => {\n\t\t\toption.fail?.({\n\t\t\t\terrMsg: '未找到相机'\n\t\t\t} as GeneralCallbackResult)\n\t\t\toption.complete?.({\n\t\t\t\terrMsg: '未找到相机'\n\t\t\t} as GeneralCallbackResult)\n\t\t})\n\t}\n}\n\nlet context : CameraContext = new CameraContext();\n\nexport function createCameraContext() : CameraContext {\n\treturn context;\n}\n\n//////////////////////////////////////////////////////////////////////////////////////////////////\n\nexport const takePhoto : TakePhoto = function (options : TakePhotoOption) {\n\tUTSAndroid.getDispatcher(\"main\").async(function (_) {\n\t\tcontext.takePhoto(options)\n\t}, null)\n}\n\nexport const setZoom : SetZoom = function (options : CameraContextSetZoomOption) {\n\tUTSAndroid.getDispatcher(\"main\").async(function (_) {\n\t\tcontext.setZoom(options)\n\t}, null)\n}\n\nexport const startRecord : StartRecord = function (options : CameraContextStartRecordOption) {\n\tUTSAndroid.getDispatcher(\"main\").async(function (_) {\n\t\tcontext.startRecord(options)\n\t}, null)\n}\n\nexport const stopRecord : StopRecord = function (options : CameraContextStopRecordOption) {\n\tUTSAndroid.getDispatcher(\"main\").async(function (_) {\n\t\tcontext.stopRecord(options)\n\t}, null)\n}\n\n@UTSJS.keepAlive\nexport function onCameraFrameListener(options : OnCameraFrameListenerOption) {\n\tUTSAndroid.getDispatcher(\"main\").async(function (_) {\n\t\tcontext.onCameraFrameListener(options)\n\t}, null)\n}\n\nexport const startCameraFrame : StartCameraFrame = function (options : CameraFrameListenerStartOption) {\n\tUTSAndroid.getDispatcher(\"main\").async(function (_) {\n\t\tcontext.cameraFrameOnStart(options)\n\t}, null)\n}\n\nexport const stopCameraFrame : StopCameraFrame = function (options : StopOption) {\n\tUTSAndroid.getDispatcher(\"main\").async(function (_) {\n\t\tcontext.cameraFrameOnStop(options)\n\t}, null)\n}\n\n\nexport const switchCamera : SwitchCamera = function (options : SwitchOption) {\n\tUTSAndroid.getDispatcher(\"main\").async(function (_) {\n\t\tcontext.switchCamera(options)\n\t}, null)\n}"]}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/index.vue b/unpackage/dist/dev/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/index.vue
deleted file mode 100644
index c7bf097..0000000
--- a/unpackage/dist/dev/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/index.vue
+++ /dev/null
@@ -1,141 +0,0 @@
-//
-//
-//
-//
-//
-import { CameraView } from './camera';
-import { CameraConfig } from '../interface';
-import { CameraManager } from './CameraManager';
-//原生提供以下属性或方法的实现
-export default {
- /**
- * 组件名称,也就是开发者使用的标签
- */
- name: "xf-camera",
- /**
- * 组件涉及的事件声明,只有声明过的事件,才能被正常发送
- */
- emits: ['stop', 'error', 'ready'],
- /**
- * 属性声明,组件的使用者会传递这些属性值到组件
- */
- props: {
- "mode": {
- type: String,
- default: "normal"
- },
- "resolution": {
- type: String,
- default: "medium" // low | high
- },
- "position": {
- type: String,
- default: "back" // front前置 |back 后置
- },
- "flash": {
- type: String,
- default: "auto" // auto, on, off, torch
- },
- "frameSize": {
- type: String,
- default: "medium" // small|large
- }
- },
- /**
- * 组件内部变量声明
- */
- data(): UTSJSONObject {
- return {};
- },
- /**
- * 属性变化监听器实现
- */
- watch: {
- "position": {
- /**
- * 这里监听属性变化,并进行组件内部更新
- */
- handler(newValue: string, _: string) {
- this.$el?.switchCamera(newValue);
- },
- immediate: false // 创建时是否通过此方法更新属性,默认值为false
- },
- "flash": {
- /**
- * 这里监听属性变化,并进行组件内部更新
- */
- handler(newValue: string, _: string) {
- this.$el?.setFlash(newValue);
- },
- immediate: false // 创建时是否通过此方法更新属性,默认值为false
- }
- },
- /**
- * 规则:如果没有配置expose,则methods中的方法均对外暴露,如果配置了expose,则以expose的配置为准向外暴露
- * ['publicMethod'] 含义为:只有 `publicMethod` 在实例上可用
- */
- expose: [],
- methods: {},
- /**
- * [可选实现] 组件被创建,组件第一个生命周期,
- * 在内存中被占用的时候被调用,开发者可以在这里执行一些需要提前执行的初始化逻辑
- */
- created() {
- },
- /**
- * [可选实现] 对应平台的view载体即将被创建,对应前端beforeMount
- */
- NVBeforeLoad() {
- },
- /**
- * [必须实现] 创建原生View,必须定义返回值类型
- * 开发者需要重点实现这个函数,声明原生组件被创建出来的过程,以及最终生成的原生组件类型
- * (Android需要明确知道View类型,需特殊校验)
- */
- NVLoad(): CameraView {
- let previewView = new CameraView(this.$androidContext!, this);
- previewView.setTag("9527");
- CameraManager.getInstance().setCameraView(previewView);
- return previewView;
- },
- /**
- * [可选实现] 原生View已创建
- */
- NVLoaded() {
- },
- /**
- * [可选实现] 原生View布局完成
- */
- NVLayouted() {
- this.$el?.setConfig({
- resolution: this.resolution,
- frameSize: this.frameSize,
- flash: this.flash
- } as CameraConfig);
- this.$el?.switchCamera(this.position);
- },
- /**
- * [可选实现] 原生View将释放
- */
- NVBeforeUnload() {
- let ret: Map = new Map();
- this.$emit('stop', ret);
- this.$el?.unbindCamera();
- },
- /**
- * [可选实现] 原生View已释放,这里可以做释放View之后的操作
- */
- NVUnloaded() {
- CameraManager.getInstance().dispose();
- },
- /**
- * [可选实现] 组件销毁
- */
- unmounted() {
- },
-};
-/*
-
-
-*/
-//# sourceMappingURL=index.vue.map
\ No newline at end of file
diff --git a/unpackage/dist/dev/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/index.vue.map b/unpackage/dist/dev/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/index.vue.map
deleted file mode 100644
index 3f1f0e6..0000000
--- a/unpackage/dist/dev/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/app-android/index.vue.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.vue","sourceRoot":"","sources":["uni_modules/Skin-cameraUTS/utssdk/app-android/index.vue.ts"],"names":[],"mappings":"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","sourcesContent":["//\n//\n//\n//\n//\n\r\n\timport { CameraView } from './camera';\r\n\timport { CameraConfig } from '../interface'\r\n\timport { CameraManager } from './CameraManager';\r\n\r\n\t//原生提供以下属性或方法的实现\r\n\texport default {\r\n\t\t/**\r\n\t\t * 组件名称,也就是开发者使用的标签\r\n\t\t */\r\n\t\tname: \"xf-camera\",\r\n\t\t/**\r\n\t\t * 组件涉及的事件声明,只有声明过的事件,才能被正常发送\r\n\t\t */\r\n\t\temits: ['stop', 'error', 'ready'],\r\n\t\t/**\r\n\t\t * 属性声明,组件的使用者会传递这些属性值到组件\r\n\t\t */\r\n\t\tprops: {\r\n\t\t\t\"mode\": {\r\n\t\t\t\ttype: String,\r\n\t\t\t\tdefault: \"normal\"\r\n\t\t\t},\r\n\t\t\t\"resolution\": {\r\n\t\t\t\ttype: String,\r\n\t\t\t\tdefault: \"medium\" // low | high\r\n\t\t\t},\r\n\t\t\t\"position\": {\r\n\t\t\t\ttype: String,\r\n\t\t\t\tdefault: \"back\" // front前置 |back 后置\r\n\t\t\t},\r\n\t\t\t\"flash\": {\r\n\t\t\t\ttype: String,\r\n\t\t\t\tdefault: \"auto\" // auto, on, off, torch\r\n\t\t\t},\r\n\t\t\t\"frameSize\": {\r\n\t\t\t\ttype: String,\r\n\t\t\t\tdefault: \"medium\" // small|large\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * 组件内部变量声明\r\n\t\t */\r\n\t\tdata() {\r\n\t\t\treturn {}\r\n\t\t},\r\n\t\t/**\r\n\t\t * 属性变化监听器实现\r\n\t\t */\r\n\t\twatch: {\r\n\t\t\t\"position\": {\r\n\t\t\t\t/**\r\n\t\t\t\t * 这里监听属性变化,并进行组件内部更新\r\n\t\t\t\t */\r\n\t\t\t\thandler(newValue : string, _ : string) {\r\n\t\t\t\t\tthis.$el?.switchCamera(newValue)\r\n\t\t\t\t},\r\n\t\t\t\timmediate: false // 创建时是否通过此方法更新属性,默认值为false\r\n\t\t\t},\r\n\t\t\t\"flash\": {\r\n\t\t\t\t/**\r\n\t\t\t\t\t * 这里监听属性变化,并进行组件内部更新\r\n\t\t\t\t\t */\r\n\t\t\t\thandler(newValue : string, _ : string) {\r\n\t\t\t\t\tthis.$el?.setFlash(newValue)\r\n\t\t\t\t},\r\n\t\t\t\timmediate: false // 创建时是否通过此方法更新属性,默认值为false\r\n\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * 规则:如果没有配置expose,则methods中的方法均对外暴露,如果配置了expose,则以expose的配置为准向外暴露\r\n\t\t * ['publicMethod'] 含义为:只有 `publicMethod` 在实例上可用\r\n\t\t */\r\n\t\texpose: [],\r\n\t\tmethods: {\r\n\r\n\t\t},\r\n\t\t/**\r\n\t\t * [可选实现] 组件被创建,组件第一个生命周期,\r\n\t\t * 在内存中被占用的时候被调用,开发者可以在这里执行一些需要提前执行的初始化逻辑\r\n\t\t */\r\n\t\tcreated() {\r\n\r\n\t\t},\r\n\t\t/**\r\n\t\t * [可选实现] 对应平台的view载体即将被创建,对应前端beforeMount\r\n\t\t */\r\n\t\tNVBeforeLoad() {\r\n\r\n\t\t},\r\n\t\t/**\r\n\t\t * [必须实现] 创建原生View,必须定义返回值类型\r\n\t\t * 开发者需要重点实现这个函数,声明原生组件被创建出来的过程,以及最终生成的原生组件类型\r\n\t\t * (Android需要明确知道View类型,需特殊校验)\r\n\t\t */\r\n\t\tNVLoad() : CameraView {\r\n\t\t\tlet previewView = new CameraView(this.$androidContext!, this)\r\n\t\t\tpreviewView.setTag(\"9527\");\r\n\t\t\tCameraManager.getInstance().setCameraView(previewView);\r\n\t\t\treturn previewView\r\n\r\n\t\t},\r\n\t\t/**\r\n\t\t * [可选实现] 原生View已创建\r\n\t\t */\r\n\t\tNVLoaded() {\r\n\r\n\t\t},\r\n\t\t/**\r\n\t\t * [可选实现] 原生View布局完成\r\n\t\t */\r\n\t\tNVLayouted() {\r\n\t\t\tthis.$el?.setConfig({\r\n\t\t\t\tresolution: this.resolution,\r\n\t\t\t\tframeSize: this.frameSize,\r\n\t\t\t\tflash: this.flash\r\n\t\t\t} as CameraConfig)\r\n\t\t\tthis.$el?.switchCamera(this.position)\r\n\t\t},\r\n\t\t/**\r\n\t\t * [可选实现] 原生View将释放\r\n\t\t */\r\n\t\tNVBeforeUnload() {\r\n\t\t\tlet ret : Map = new Map();\r\n\t\t\tthis.$emit('stop', ret)\r\n\r\n\t\t\tthis.$el?.unbindCamera()\r\n\t\t},\r\n\t\t/**\r\n\t\t * [可选实现] 原生View已释放,这里可以做释放View之后的操作\r\n\t\t */\r\n\t\tNVUnloaded() {\r\n\t\t\tCameraManager.getInstance().dispose();\r\n\t\t},\r\n\t\t/**\r\n\t\t * [可选实现] 组件销毁\r\n\t\t */\r\n\t\tunmounted() {\r\n\r\n\t\t},\r\n\t}\r\n/*\r\n\t\r\n\t\r\n*/"]}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/interface.uts b/unpackage/dist/dev/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/interface.uts
deleted file mode 100644
index 35a05a8..0000000
--- a/unpackage/dist/dev/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/interface.uts
+++ /dev/null
@@ -1,183 +0,0 @@
-export type GeneralCallbackResult = {
- /** 错误信息 */
- errMsg: string;
-};
-export type TakePhotoSuccessCallbackResult = {
- /** 照片文件的临时路径 (本地路径),安卓是jpg图片格式,ios是png */
- tempImagePath: string;
- quality: string;
- errMsg: string;
-};
-/** 接口调用失败的回调函数 */
-export type TakePhotoFailCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用成功的回调函数 */
-export type TakePhotoSuccessCallback = (result: TakePhotoSuccessCallbackResult) => void;
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type TakePhotoCompleteCallback = (res: GeneralCallbackResult) => void;
-export type TakePhotoOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete?: TakePhotoCompleteCallback;
- /** 接口调用失败的回调函数 */
- fail?: TakePhotoFailCallback;
- /** 成像质量
- *
- * 可选值:
- * - 'high': 高质量;
- * - 'normal': 普通质量;
- * - 'low': 低质量;
- * - 'original': 原图; */
- quality?: 'high' | 'normal' | 'low' | 'original';
- /**
- * 是否开启镜像 */
- selfieMirror?: boolean;
- /** 接口调用成功的回调函数 */
- success?: TakePhotoSuccessCallback;
-};
-export type SetZoomSuccessCallbackResult = {
- /** 实际设置的缩放级别。由于系统限制,某些机型可能无法设置成指定值,会改用最接近的可设值。 */
- zoom: number;
- errMsg: string;
-};
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type SetZoomCompleteCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用失败的回调函数 */
-export type SetZoomFailCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用成功的回调函数 */
-export type CameraContextSetZoomSuccessCallback = (result: SetZoomSuccessCallbackResult) => void;
-export type CameraContextSetZoomOption = {
- /** 缩放级别,范围[1, maxZoom]。zoom 可取小数,精确到小数后一位。maxZoom 可在 bindinitdone 返回值中获取。 */
- zoom: number;
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete?: SetZoomCompleteCallback;
- /** 接口调用失败的回调函数 */
- fail?: SetZoomFailCallback;
- /** 接口调用成功的回调函数 */
- success?: CameraContextSetZoomSuccessCallback;
-};
-export type StartRecordTimeoutCallbackResult = {
- /** 视频的文件的临时路径 (本地路径) */
- tempVideoPath: string;
-};
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type StartRecordCompleteCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用失败的回调函数 */
-export type StartRecordFailCallback = (res: GeneralCallbackResult) => void;
-/** 超过录制时长上限时会结束录像并触发此回调,录像异常退出时也会触发此回调 */
-export type StartRecordTimeoutCallback = (result: StartRecordTimeoutCallbackResult) => void;
-/** 接口调用成功的回调函数 */
-export type CameraContextStartRecordSuccessCallback = (res: GeneralCallbackResult) => void;
-export type CameraContextStartRecordOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete?: StartRecordCompleteCallback;
- /** 接口调用失败的回调函数 */
- fail?: StartRecordFailCallback;
- /**
- * 是否开启镜像 */
- selfieMirror?: boolean;
- /** 接口调用成功的回调函数 */
- success?: CameraContextStartRecordSuccessCallback;
- /**
- * 录制时长上限,单位为秒,最长不能超过 5 分钟 */
- timeout?: number;
- /** 超过录制时长上限时会结束录像并触发此回调,录像异常退出时也会触发此回调 */
- timeoutCallback?: StartRecordTimeoutCallback;
-};
-export type StopRecordSuccessCallbackResult = {
- /** 视频的文件的临时路径 (本地路径) */
- tempVideoPath: string;
- errMsg: string;
-};
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type StopRecordCompleteCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用失败的回调函数 */
-export type StopRecordFailCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用成功的回调函数 */
-export type CameraContextStopRecordSuccessCallback = (result: StopRecordSuccessCallbackResult) => void;
-export type CameraContextStopRecordOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete?: StopRecordCompleteCallback;
- /** 启动视频压缩,压缩效果同`chooseVideo` */
- compressed?: boolean;
- /** 接口调用失败的回调函数 */
- fail?: StopRecordFailCallback;
- /** 接口调用成功的回调函数 */
- success?: CameraContextStopRecordSuccessCallback;
-};
-/** 回调函数 */
-export type OnCameraFrameCallback = (result: OnCameraFrameCallbackResult) => void;
-export type OnCameraFrameCallbackResult = {
- /** 图像像素点数据,一维数组,每四项表示一个像素点的 rgba */
- data: any;
- /** 图像数据矩形的高度 */
- height: number;
- /** 图像数据矩形的宽度 */
- width: number;
-};
-/** 接口调用成功的回调函数 */
-export type StartSuccessCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用失败的回调函数 */
-type StartFailCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-type StartCompleteCallback = (res: GeneralCallbackResult) => void;
-export type CameraFrameListenerStartOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete?: StartCompleteCallback;
- /** 接口调用失败的回调函数 */
- fail?: StartFailCallback;
- /** 接口调用成功的回调函数 */
- success?: StartSuccessCallback;
-};
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type StopCompleteCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用失败的回调函数 */
-export type StopFailCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用成功的回调函数 */
-export type StopSuccessCallback = (res: GeneralCallbackResult) => void;
-export type StopOption = {
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete?: StopCompleteCallback;
- /** 接口调用失败的回调函数 */
- fail?: StopFailCallback;
- /** 接口调用成功的回调函数 */
- success?: StopSuccessCallback;
-};
-export type FlashMode = 'auto' | 'on' | 'off' | 'torch';
-export type DevicePosition = 'back' | 'front';
-export type Resolution = 'low' | 'medium' | 'high';
-export type FrameSize = 'medium' | 'small' | 'large';
-export type QualityType = 'high' | 'normal' | 'low' | 'original';
-export type CameraConfig = {
- flash?: FlashMode;
- devicePosition?: DevicePosition;
- resolution?: Resolution;
- frameSize?: FrameSize;
-};
-//////////////////////////////////////////////////////////////////////////////////////////////////
-/** 接口调用结束的回调函数(调用成功、失败都会执行) */
-export type SwitchCompleteCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用失败的回调函数 */
-export type SwitchFailCallback = (res: GeneralCallbackResult) => void;
-/** 接口调用成功的回调函数 */
-export type SwitchSuccessCallback = (res: GeneralCallbackResult) => void;
-export type SwitchOption = {
- position: DevicePosition;
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete?: SwitchCompleteCallback;
- /** 接口调用失败的回调函数 */
- fail?: SwitchFailCallback;
- /** 接口调用成功的回调函数 */
- success?: SwitchSuccessCallback;
-};
-//////////////////////////////////////////////////////////////////////////////////////////////////
-export type OnCameraFrameListenerOption = {
- success?: OnCameraFrameCallback;
-};
-export type TakePhoto = (options: TakePhotoOption) => void;
-export type SetZoom = (options: CameraContextSetZoomOption) => void;
-export type StartRecord = (options: CameraContextStartRecordOption) => void;
-export type StopRecord = (options: CameraContextStopRecordOption) => void;
-export type OnCameraFrameListener = (options: OnCameraFrameListenerOption) => void;
-export type StartCameraFrame = (options: CameraFrameListenerStartOption) => void;
-export type StopCameraFrame = (options: StopOption) => void;
-export type SwitchCamera = (options: SwitchOption) => void;
-//# sourceMappingURL=interface.uts.map
\ No newline at end of file
diff --git a/unpackage/dist/dev/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/interface.uts.map b/unpackage/dist/dev/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/interface.uts.map
deleted file mode 100644
index 3705444..0000000
--- a/unpackage/dist/dev/.uvue/app-android/uni_modules/Skin-cameraUTS/utssdk/interface.uts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"interface.uts","sourceRoot":"","sources":["uni_modules/Skin-cameraUTS/utssdk/interface.uts"],"names":[],"mappings":"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","sourcesContent":["export type GeneralCallbackResult = {\r\n\t/** 错误信息 */\r\n\terrMsg : string\r\n}\r\nexport type TakePhotoSuccessCallbackResult = {\r\n\t/** 照片文件的临时路径 (本地路径),安卓是jpg图片格式,ios是png */\r\n\ttempImagePath : string\r\n\tquality : string\r\n\terrMsg : string\r\n}\r\n/** 接口调用失败的回调函数 */\r\nexport type TakePhotoFailCallback = (res : GeneralCallbackResult) => void\r\n/** 接口调用成功的回调函数 */\r\nexport type TakePhotoSuccessCallback = (\r\n\tresult : TakePhotoSuccessCallbackResult\r\n) => void\r\n\r\n/** 接口调用结束的回调函数(调用成功、失败都会执行) */\r\nexport type TakePhotoCompleteCallback = (res : GeneralCallbackResult) => void\r\n\r\nexport type TakePhotoOption = {\r\n\t/** 接口调用结束的回调函数(调用成功、失败都会执行) */\r\n\tcomplete ?: TakePhotoCompleteCallback\r\n\t/** 接口调用失败的回调函数 */\r\n\tfail ?: TakePhotoFailCallback\r\n\t/** 成像质量\r\n\t *\r\n\t * 可选值:\r\n\t * - 'high': 高质量;\r\n\t * - 'normal': 普通质量;\r\n\t * - 'low': 低质量;\r\n\t * - 'original': 原图; */\r\n\tquality ?: 'high' | 'normal' | 'low' | 'original'\r\n\t/** \r\n\t * 是否开启镜像 */\r\n\tselfieMirror ?: boolean\r\n\t/** 接口调用成功的回调函数 */\r\n\tsuccess ?: TakePhotoSuccessCallback\r\n}\r\n\r\n\r\nexport type SetZoomSuccessCallbackResult = {\r\n\t/** 实际设置的缩放级别。由于系统限制,某些机型可能无法设置成指定值,会改用最接近的可设值。 */\r\n\tzoom : number\r\n\terrMsg : string\r\n}\r\n/** 接口调用结束的回调函数(调用成功、失败都会执行) */\r\nexport type SetZoomCompleteCallback = (res : GeneralCallbackResult) => void\r\n/** 接口调用失败的回调函数 */\r\nexport type SetZoomFailCallback = (res : GeneralCallbackResult) => void\r\n/** 接口调用成功的回调函数 */\r\nexport type CameraContextSetZoomSuccessCallback = (\r\n\tresult : SetZoomSuccessCallbackResult\r\n) => void\r\n\r\nexport type CameraContextSetZoomOption = {\r\n\t/** 缩放级别,范围[1, maxZoom]。zoom 可取小数,精确到小数后一位。maxZoom 可在 bindinitdone 返回值中获取。 */\r\n\tzoom : number\r\n\t/** 接口调用结束的回调函数(调用成功、失败都会执行) */\r\n\tcomplete ?: SetZoomCompleteCallback\r\n\t/** 接口调用失败的回调函数 */\r\n\tfail ?: SetZoomFailCallback\r\n\t/** 接口调用成功的回调函数 */\r\n\tsuccess ?: CameraContextSetZoomSuccessCallback\r\n}\r\n\r\nexport type StartRecordTimeoutCallbackResult = {\r\n\t/** 视频的文件的临时路径 (本地路径) */\r\n\ttempVideoPath : string\r\n}\r\n\r\n/** 接口调用结束的回调函数(调用成功、失败都会执行) */\r\nexport type StartRecordCompleteCallback = (res : GeneralCallbackResult) => void\r\n/** 接口调用失败的回调函数 */\r\nexport type StartRecordFailCallback = (res : GeneralCallbackResult) => void\r\n/** 超过录制时长上限时会结束录像并触发此回调,录像异常退出时也会触发此回调 */\r\nexport type StartRecordTimeoutCallback = (\r\n\tresult : StartRecordTimeoutCallbackResult\r\n) => void\r\n/** 接口调用成功的回调函数 */\r\nexport type CameraContextStartRecordSuccessCallback = (\r\n\tres : GeneralCallbackResult\r\n) => void\r\nexport type CameraContextStartRecordOption = {\r\n\t/** 接口调用结束的回调函数(调用成功、失败都会执行) */\r\n\tcomplete ?: StartRecordCompleteCallback\r\n\t/** 接口调用失败的回调函数 */\r\n\tfail ?: StartRecordFailCallback\r\n\t/** \r\n\t * 是否开启镜像 */\r\n\tselfieMirror ?: boolean\r\n\t/** 接口调用成功的回调函数 */\r\n\tsuccess ?: CameraContextStartRecordSuccessCallback\r\n\t/** \r\n\t * 录制时长上限,单位为秒,最长不能超过 5 分钟 */\r\n\ttimeout ?: number\r\n\t/** 超过录制时长上限时会结束录像并触发此回调,录像异常退出时也会触发此回调 */\r\n\ttimeoutCallback ?: StartRecordTimeoutCallback\r\n}\r\n\r\nexport type StopRecordSuccessCallbackResult = {\r\n\t/** 视频的文件的临时路径 (本地路径) */\r\n\ttempVideoPath : string\r\n\terrMsg : string\r\n}\r\n/** 接口调用结束的回调函数(调用成功、失败都会执行) */\r\nexport type StopRecordCompleteCallback = (res : GeneralCallbackResult) => void\r\n/** 接口调用失败的回调函数 */\r\nexport type StopRecordFailCallback = (res : GeneralCallbackResult) => void\r\n/** 接口调用成功的回调函数 */\r\nexport type CameraContextStopRecordSuccessCallback = (\r\n\tresult : StopRecordSuccessCallbackResult\r\n) => void\r\nexport type CameraContextStopRecordOption = {\r\n\t/** 接口调用结束的回调函数(调用成功、失败都会执行) */\r\n\tcomplete ?: StopRecordCompleteCallback\r\n\t/** 启动视频压缩,压缩效果同`chooseVideo` */\r\n\tcompressed ?: boolean\r\n\t/** 接口调用失败的回调函数 */\r\n\tfail ?: StopRecordFailCallback\r\n\t/** 接口调用成功的回调函数 */\r\n\tsuccess ?: CameraContextStopRecordSuccessCallback\r\n}\r\n\r\n/** 回调函数 */\r\nexport type OnCameraFrameCallback = (result : OnCameraFrameCallbackResult) => void\r\nexport type OnCameraFrameCallbackResult = {\r\n\t/** 图像像素点数据,一维数组,每四项表示一个像素点的 rgba */\r\n\tdata : any\r\n\t/** 图像数据矩形的高度 */\r\n\theight : number\r\n\t/** 图像数据矩形的宽度 */\r\n\twidth : number\r\n}\r\n/** 接口调用成功的回调函数 */\r\nexport type StartSuccessCallback = (res : GeneralCallbackResult) => void\r\n/** 接口调用失败的回调函数 */\r\ntype StartFailCallback = (res : GeneralCallbackResult) => void\r\n/** 接口调用结束的回调函数(调用成功、失败都会执行) */\r\ntype StartCompleteCallback = (res : GeneralCallbackResult) => void\r\nexport type CameraFrameListenerStartOption = {\r\n\t/** 接口调用结束的回调函数(调用成功、失败都会执行) */\r\n\tcomplete ?: StartCompleteCallback\r\n\t/** 接口调用失败的回调函数 */\r\n\tfail ?: StartFailCallback\r\n\t/** 接口调用成功的回调函数 */\r\n\tsuccess ?: StartSuccessCallback\r\n\t/** [Worker](https://developers.weixin.qq.com/miniprogram/dev/api/worker/Worker.html)\r\n\t *\r\n\t * 可选参数。如果需要在 iOS ExperimentalWorker 内监听摄像头帧数据,则需要传入对应 Worker 对象。详情 [Worker.getCameraFrameData](https://developers.weixin.qq.com/miniprogram/dev/api/worker/Worker.getCameraFrameData.html) */\r\n\t// worker ?: Worker\r\n}\r\n\r\n\r\n/** 接口调用结束的回调函数(调用成功、失败都会执行) */\r\nexport type StopCompleteCallback = (res : GeneralCallbackResult) => void\r\n/** 接口调用失败的回调函数 */\r\nexport type StopFailCallback = (res : GeneralCallbackResult) => void\r\n/** 接口调用成功的回调函数 */\r\nexport type StopSuccessCallback = (res : GeneralCallbackResult) => void\r\nexport type StopOption = {\r\n\t/** 接口调用结束的回调函数(调用成功、失败都会执行) */\r\n\tcomplete ?: StopCompleteCallback\r\n\t/** 接口调用失败的回调函数 */\r\n\tfail ?: StopFailCallback\r\n\t/** 接口调用成功的回调函数 */\r\n\tsuccess ?: StopSuccessCallback\r\n}\r\n\r\nexport type FlashMode = 'auto' | 'on' | 'off' | 'torch'\r\nexport type DevicePosition = 'back' | 'front'\r\nexport type Resolution = 'low' | 'medium' | 'high'\r\nexport type FrameSize = 'medium' | 'small' | 'large'\r\nexport type QualityType = 'high' | 'normal' | 'low' | 'original'\r\n\r\n\r\nexport type CameraConfig = {\r\n\tflash ?: FlashMode\r\n\tdevicePosition ?: DevicePosition\r\n\tresolution ?: Resolution\r\n\tframeSize ?: FrameSize\r\n}\r\n\r\n//////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n/** 接口调用结束的回调函数(调用成功、失败都会执行) */\r\nexport type SwitchCompleteCallback = (res : GeneralCallbackResult) => void\r\n/** 接口调用失败的回调函数 */\r\nexport type SwitchFailCallback = (res : GeneralCallbackResult) => void\r\n/** 接口调用成功的回调函数 */\r\nexport type SwitchSuccessCallback = (res : GeneralCallbackResult) => void\r\nexport type SwitchOption = {\r\n\tposition : DevicePosition\r\n\t/** 接口调用结束的回调函数(调用成功、失败都会执行) */\r\n\tcomplete ?: SwitchCompleteCallback\r\n\t/** 接口调用失败的回调函数 */\r\n\tfail ?: SwitchFailCallback\r\n\t/** 接口调用成功的回调函数 */\r\n\tsuccess ?: SwitchSuccessCallback\r\n}\r\n\r\n//////////////////////////////////////////////////////////////////////////////////////////////////\r\nexport type OnCameraFrameListenerOption = {\r\n\tsuccess ?: OnCameraFrameCallback\r\n}\r\n\r\nexport type TakePhoto = (options : TakePhotoOption) => void\r\nexport type SetZoom = (options : CameraContextSetZoomOption) => void\r\nexport type StartRecord = (options : CameraContextStartRecordOption) => void\r\nexport type StopRecord = (options : CameraContextStopRecordOption) => void\r\nexport type OnCameraFrameListener = (options : OnCameraFrameListenerOption) => void\r\nexport type StartCameraFrame = (options : CameraFrameListenerStartOption) => void\r\nexport type StopCameraFrame = (options : StopOption) => void\r\nexport type SwitchCamera = (options : SwitchOption) => void"]}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/CameraManager.uts b/unpackage/dist/dev/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/CameraManager.uts
deleted file mode 100644
index c863342..0000000
--- a/unpackage/dist/dev/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/CameraManager.uts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { CameraView } from "./camera";
-export class CameraManager {
- private cameraView: CameraView | null = null;
- private static instance: CameraManager | null = null;
- public static getInstance(): CameraManager {
- if (CameraManager.instance == null) {
- CameraManager.instance = new CameraManager();
- }
- return CameraManager.instance!;
- }
- public setCameraView(cameraView?: CameraView): void {
- this.cameraView = cameraView!;
- }
- public getCameraView(): CameraView | null {
- return this.cameraView;
- }
- public dispose(): void {
- this.cameraView = null;
- }
-}
-//# sourceMappingURL=CameraManager.uts.map
\ No newline at end of file
diff --git a/unpackage/dist/dev/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/CameraManager.uts.map b/unpackage/dist/dev/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/CameraManager.uts.map
deleted file mode 100644
index 4eb15d6..0000000
--- a/unpackage/dist/dev/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/CameraManager.uts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"CameraManager.uts","sourceRoot":"","sources":["uni_modules/Skin-cameraUTS/utssdk/app-ios/CameraManager.uts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,OAAO,aAAa;IACzB,OAAO,CAAC,UAAU,EAAG,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC;IAE9C,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAG,aAAa,GAAG,IAAI,GAAG,IAAI,CAAC;IAEtD,MAAM,CAAC,MAAM,CAAC,WAAW,IAAK,aAAa;QAC1C,IAAI,aAAa,CAAC,QAAQ,IAAI,IAAI,EAAE;YACnC,aAAa,CAAC,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;SAC7C;QACD,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,UAAW,CAAC,EAAE,UAAU,GAAI,IAAI;QACpD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,CAAA;IAC9B,CAAC;IAED,MAAM,CAAC,aAAa,IAAK,UAAU,GAAG,IAAI;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,OAAO,IAAK,IAAI;QACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACxB,CAAC;CACD","sourcesContent":["import { CameraView } from \"./camera\";\r\n\r\nexport class CameraManager {\r\n\tprivate cameraView : CameraView | null = null;\r\n\r\n\tprivate static instance : CameraManager | null = null;\r\n\r\n\tpublic static getInstance() : CameraManager {\r\n\t\tif (CameraManager.instance == null) {\r\n\t\t\tCameraManager.instance = new CameraManager();\r\n\t\t}\r\n\t\treturn CameraManager.instance!;\r\n\t}\r\n\r\n\tpublic setCameraView(cameraView ?: CameraView) : void {\r\n\t\tthis.cameraView = cameraView!\r\n\t}\r\n\r\n\tpublic getCameraView() : CameraView | null {\r\n\t\treturn this.cameraView;\r\n\t}\r\n\r\n\tpublic dispose() : void {\r\n\t\tthis.cameraView = null;\r\n\t}\r\n}"]}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/camera.uts b/unpackage/dist/dev/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/camera.uts
deleted file mode 100644
index 4fe9c77..0000000
--- a/unpackage/dist/dev/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/camera.uts
+++ /dev/null
@@ -1,422 +0,0 @@
-import { UIImage, UIView } from 'UIKit';
-import { AVCaptureDevice, AVCaptureDeviceInput, AVCaptureSession, AVCaptureVideoPreviewLayer, AVMediaType, AVLayerVideoGravity, AVCaptureVideoDataOutput, AVCaptureVideoDataOutputSampleBufferDelegate, AVCaptureOutput, AVCaptureConnection, AVCapturePhotoOutput, AVCapturePhotoSettings, AVCapturePhotoCaptureDelegate, AVCaptureMovieFileOutput, AVCaptureFileOutputRecordingDelegate, AVCaptureFileOutput } from "AVFoundation";
-import { CMSampleBuffer, CMSampleBufferGetImageBuffer } from 'CoreMedia';
-import { DispatchQueue } from 'Dispatch';
-import { CVPixelBufferGetWidth, CVPixelBufferGetHeight } from "CoreVideo";
-import { NSError, URL } from "Foundation";
-import { TakePhotoOption, GeneralCallbackResult, TakePhotoSuccessCallbackResult, CameraContextSetZoomOption, SetZoomSuccessCallbackResult, CameraContextStopRecordOption, CameraContextStartRecordOption, StartRecordTimeoutCallbackResult, StopRecordSuccessCallbackResult, OnCameraFrameCallback, OnCameraFrameCallbackResult, OnCameraFrameListenerOption, CameraFrameListenerStartOption, StopOption, CameraConfig, FlashMode, DevicePosition, Resolution } from '../interface';
-import { AVCapturePhoto } from 'AVFoundation';
-const RESOLUTION_MAP = new Map([
- ['low', AVCaptureSession.Preset.low],
- ['medium', AVCaptureSession.Preset.medium],
- ['high', AVCaptureSession.Preset.high],
-]);
-const FLASH_MODE_MAP = new Map([
- ['auto', AVCaptureDevice.TorchMode.auto],
- ['on', AVCaptureDevice.TorchMode.on],
- ['torch', AVCaptureDevice.TorchMode.on],
- ['off', AVCaptureDevice.TorchMode.off],
-]);
-let fileOutputRecordingDelegate: MyAVCaptureFileOutputRecordingDelegate | null = null;
-let capturePhotoCaptureDelegate: MyAVCapturePhotoCaptureDelegate | null = null;
-let onCameraFrameListenerOption: OnCameraFrameListenerOption | null = null;
-let cameraContextStopRecordOption: CameraContextStopRecordOption | null = null;
-class MyAVCaptureFileOutputRecordingDelegate implements AVCaptureFileOutputRecordingDelegate {
- private option: CameraContextStartRecordOption;
- constructor(option: CameraContextStartRecordOption) {
- this.option = option;
- }
- fileOutput(output: AVCaptureFileOutput,
- @argumentLabel("didStartRecordingTo")
- fileURL: URL,
- @argumentLabel("from")
- connections: [
- AVCaptureConnection
- ]): void {
- this.option.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult);
- }
- fileOutput(output: AVCaptureFileOutput,
- @argumentLabel("didFinishRecordingTo")
- outputFileURL: URL,
- @argumentLabel("from")
- connections: [
- AVCaptureConnection
- ],
- @argumentLabel("error")
- error?: NSError): void {
- if (error == null) {
- cameraContextStopRecordOption?.success?.({
- tempVideoPath: outputFileURL.path + "",
- errMsg: 'ok'
- } as StopRecordSuccessCallbackResult);
- this.option.timeoutCallback?.({
- tempVideoPath: outputFileURL.path + ""
- } as StartRecordTimeoutCallbackResult);
- }
- else {
- cameraContextStopRecordOption?.fail?.({
- errMsg: '录制失败'
- } as GeneralCallbackResult);
- cameraContextStopRecordOption?.complete?.({
- errMsg: '录制失败'
- } as GeneralCallbackResult);
- }
- }
-}
-class MyAVCapturePhotoCaptureDelegate implements AVCapturePhotoCaptureDelegate {
- private option: TakePhotoOption;
- constructor(option: TakePhotoOption) {
- this.option = option;
- }
- captureOutput(output: AVCapturePhotoOutput,
- @argumentLabel("didFinishProcessingPhoto")
- photo: AVCapturePhoto,
- @argumentLabel("error")
- error: Error): void {
- let imageData = photo.fileDataRepresentation();
- if (imageData == null) {
- const result: GeneralCallbackResult = {
- errMsg: "拍照失败"
- };
- this.option.fail?.(result);
- this.option.complete?.(result);
- return;
- }
- let path = UTSiOS.getDataPath() + (new Date().getTime()).toString() + ".jpg";
- let url = new URL(fileURLWithPath = path);
- let quality = this.option.quality ?? "original";
- if (quality == 'original') {
- try {
- UTSiOS.try(imageData!.write(to = url, options = NSData.WritingOptions.atomic));
- this.option.success?.({
- tempImagePath: path,
- quality: quality,
- errMsg: 'ok'
- } as TakePhotoSuccessCallbackResult);
- this.option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult);
- }
- catch (e) {
- const result: GeneralCallbackResult = {
- errMsg: JSON.stringify(e)
- };
- this.option.fail?.(result);
- this.option.complete?.(result);
- }
- }
- else {
- let image = UIImage(data = imageData!);
- if (image != null) {
- let _quality: number = 0.5;
- if (quality == 'high') {
- _quality = 1.0;
- }
- else if (quality == 'normal') {
- _quality = 0.8;
- }
- else if (quality == 'low') {
- _quality = 0.5;
- }
- let data = image!.jpegData(compressionQuality = _quality.toDouble())!;
- try {
- UTSiOS.try(data.write(to = url, options = NSData.WritingOptions.atomic));
- this.option.success?.({
- tempImagePath: path,
- quality: quality,
- errMsg: 'ok'
- } as TakePhotoSuccessCallbackResult);
- this.option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult);
- }
- catch (e) {
- const result: GeneralCallbackResult = {
- errMsg: JSON.stringify(e)
- };
- this.option.fail?.(result);
- this.option.complete?.(result);
- }
- }
- else {
- const result: GeneralCallbackResult = {
- errMsg: "拍照失败"
- };
- this.option.fail?.(result);
- this.option.complete?.(result);
- }
- }
- }
-}
-export class CameraView implements AVCaptureVideoDataOutputSampleBufferDelegate {
- private captureSession?: AVCaptureSession;
- private videoDeviceInput?: AVCaptureDeviceInput;
- private photoDeviceOutput?: AVCapturePhotoOutput;
- private movieDeviceOutput?: AVCaptureMovieFileOutput;
- private previewLayer?: AVCaptureVideoPreviewLayer;
- private previewView?: UIView;
- private comp?: UTSComponent;
- private flashMode: FlashMode = 'auto';
- private devicePosition: DevicePosition = 'back';
- private resolution: Resolution = 'medium';
- private isListening: boolean = false;
- private onCameraFrameCallback: OnCameraFrameCallback | null = null;
- constructor(previewView: UIView, comp: UTSComponent, config: CameraConfig = {} as CameraConfig) {
- super.init();
- this.previewView = previewView;
- this.comp = comp;
- this.flashMode = config.flash ?? 'auto';
- this.devicePosition = config.devicePosition ?? 'back';
- this.resolution = config.resolution ?? 'medium';
- this.setupCamera();
- }
- setupCamera() {
- this.captureSession = new AVCaptureSession();
- let targetResolution = RESOLUTION_MAP.get(this.resolution) ?? AVCaptureSession.Preset.high;
- this.captureSession!.sessionPreset = targetResolution;
- let device = this.getCameraDevice();
- try {
- //相机
- let deviceInput = UTSiOS.try(new AVCaptureDeviceInput(device = device));
- if (this.captureSession!.canAddInput(deviceInput)) {
- this.captureSession!.addInput(deviceInput);
- }
- //实时流输出
- let output = new AVCaptureVideoDataOutput();
- output.setSampleBufferDelegate(this, queue = DispatchQueue.main);
- if (this.captureSession!.canAddOutput(output)) {
- this.captureSession!.addOutput(output);
- }
- let photoOutput = new AVCapturePhotoOutput();
- // let photoSettings = new AVCapturePhotoSettings(format = [AVVideoCodecKey = AVVideoCodecType.jpeg]);
- // photoOutput.setPreparedPhotoSettingsArray([photoSettings], completionHandler = null);
- if (this.captureSession!.canAddOutput(photoOutput)) {
- this.captureSession!.addOutput(photoOutput);
- }
- let movieOutput = new AVCaptureMovieFileOutput();
- if (this.captureSession!.canAddOutput(movieOutput)) {
- this.captureSession!.addOutput(movieOutput);
- }
- this.videoDeviceInput = deviceInput;
- this.photoDeviceOutput = photoOutput;
- this.movieDeviceOutput = movieOutput;
- this.previewLayer = new AVCaptureVideoPreviewLayer(session = this.captureSession!);
- this.previewLayer!.videoGravity = AVLayerVideoGravity.resizeAspectFill;
- this.previewLayer!.frame = this.previewView!.layer.bounds;
- this.previewView!.layer.addSublayer(this.previewLayer!);
- this.captureSession!.startRunning();
- let ret: Map = new Map();
- ret.set("maxZoom", device.maxAvailableVideoZoomFactor);
- let detail: Map = new Map();
- detail.set("detail", ret);
- this.comp?.$emit("ready", detail);
- }
- catch (e) {
- let ret: Map = new Map();
- ret.set("errMsg", JSON.stringify(e));
- let detail: Map = new Map();
- detail.set("detail", ret);
- this.comp?.$emit("error", detail);
- }
- }
- getCameraDevice(): AVCaptureDevice {
- let cameras = AVCaptureDevice.devices(for = AVMediaType.video);
- let frontCamera: AVCaptureDevice | null = null;
- let backCamera: AVCaptureDevice | null = null;
- let index = 0;
- while (index < cameras.length) {
- if (index == cameras.length) {
- break;
- }
- let camera = cameras[index.toInt()] as AVCaptureDevice;
- if (camera.position == AVCaptureDevice.Position.back) {
- backCamera = camera;
- }
- else {
- frontCamera = camera;
- }
- index++;
- }
- if (this.devicePosition == 'back') {
- return backCamera!;
- }
- else {
- return frontCamera!;
- }
- }
- captureOutput(output: AVCaptureOutput,
- @argumentLabel("didOutput")
- sampleBuffer: CMSampleBuffer,
- @argumentLabel("from")
- connection: AVCaptureConnection): void {
- if (this.isListening) {
- let imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
- let width = CVPixelBufferGetWidth(imageBuffer!);
- let height = CVPixelBufferGetHeight(imageBuffer!);
- const res: OnCameraFrameCallbackResult = {
- width: width as Int,
- height: height as Int,
- data: imageBuffer!
- };
- this.onCameraFrameCallback?.(res);
- onCameraFrameListenerOption?.success?.({
- width: width as Int,
- height: height as Int,
- data: imageBuffer!
- } as OnCameraFrameCallbackResult);
- // this.onCameraFrameListenerOption?.success({
- // width: width as Int,
- // height: height as Int,
- // data: imageBuffer!
- // } as OnCameraFrameCallbackResult)
- // if (imageBuffer != null) {
- // let ciImage = new CIImage(cvPixelBuffer = imageBuffer!)
- // let temporaryContext = new CIContext(options = null)
- // let width = CVPixelBufferGetWidth(imageBuffer!)
- // let height = CVPixelBufferGetHeight(imageBuffer!);
- // let videoImage = temporaryContext.createCGImage(ciImage, from = new CGRect(x = 0, y = 0, width = width, height = height))
- // let image = new UIImage(cgImage = videoImage!)
- // this.onCameraFrameCallback?.({
- // width: width as Int,
- // height: height as Int,
- // data: image
- // } as OnCameraFrameCallbackResult)
- // }
- }
- }
- bindCamera() {
- this.captureSession!.startRunning();
- }
- unbindCamera() {
- this.captureSession!.stopRunning();
- }
- setConfig(config: CameraConfig = {} as CameraConfig) {
- this.flashMode = config.flash ?? 'auto';
- this.devicePosition = config.devicePosition ?? 'back';
- this.resolution = config.resolution ?? 'medium';
- }
- setFlash(mode: FlashMode) {
- this.flashMode = mode;
- let targetFlash = FLASH_MODE_MAP.get(this.flashMode) ?? AVCaptureDevice.TorchMode.auto;
- try {
- let device = this.getCameraDevice();
- if (device.hasTorch && device.isTorchAvailable) {
- UTSiOS.try(device.lockForConfiguration());
- device.torchMode = targetFlash;
- device.unlockForConfiguration();
- }
- }
- catch (e) {
- __f__('log', 'at uni_modules/Skin-cameraUTS/utssdk/app-ios/camera.uts:345', e);
- }
- }
- switchCamera(position: DevicePosition) {
- if (!this.captureSession!.isRunning) {
- return;
- }
- this.devicePosition = position;
- try {
- this.captureSession!.beginConfiguration();
- this.captureSession!.removeInput(this.videoDeviceInput!);
- let device = this.getCameraDevice();
- let deviceInput = UTSiOS.try(new AVCaptureDeviceInput(device = device));
- this.captureSession!.addInput(deviceInput);
- this.videoDeviceInput = deviceInput;
- this.captureSession!.commitConfiguration();
- }
- catch (e) {
- __f__('log', 'at uni_modules/Skin-cameraUTS/utssdk/app-ios/camera.uts:365', e);
- }
- }
- takePhoto(option: TakePhotoOption) {
- capturePhotoCaptureDelegate = new MyAVCapturePhotoCaptureDelegate(option);
- let settings = new AVCapturePhotoSettings();
- this.photoDeviceOutput?.capturePhoto(with = settings, delegate = capturePhotoCaptureDelegate!);
- }
- setZoom(option: CameraContextSetZoomOption) {
- try {
- let device = this.getCameraDevice();
- // if (device.isRampingVideoZoom) {
- UTSiOS.try(device.lockForConfiguration());
- device.videoZoomFactor = option.zoom.toDouble();
- device.unlockForConfiguration();
- option.success?.({
- zoom: option.zoom,
- errMsg: 'ok'
- } as SetZoomSuccessCallbackResult);
- option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult);
- // } else {
- // const result : GeneralCallbackResult = {
- // errMsg: '相机不支持缩放'
- // }
- // option.complete?.(result)
- // option.fail?.(result)
- // }
- }
- catch (e) {
- const result: GeneralCallbackResult = {
- errMsg: JSON.stringify(e)
- };
- option.complete?.(result);
- option.fail?.(result);
- }
- }
- startRecord(option: CameraContextStartRecordOption) {
- let isRecording = this.movieDeviceOutput?.isRecording ?? false;
- if (isRecording) {
- option.fail?.({
- errMsg: '已经在录制或相机不存在'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '已经在录制或相机不存在'
- } as GeneralCallbackResult);
- return;
- }
- fileOutputRecordingDelegate = new MyAVCaptureFileOutputRecordingDelegate(option);
- let path = UTSiOS.getDataPath() + (new Date().getTime()).toString() + ".mp4";
- let url = new URL(fileURLWithPath = path);
- this.movieDeviceOutput?.startRecording(to = url, recordingDelegate = fileOutputRecordingDelegate!);
- if (option.timeout != null && option.timeout! > 0) {
- setTimeout(() => {
- this.movieDeviceOutput?.stopRecording();
- }, (option.timeout!).toInt());
- }
- }
- stopRecord(option: CameraContextStopRecordOption) {
- let isRecording = this.movieDeviceOutput?.isRecording ?? false;
- if (!isRecording) {
- option.fail?.({
- errMsg: '未开始录制'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '未开始录制'
- } as GeneralCallbackResult);
- return;
- }
- cameraContextStopRecordOption = option;
- this.movieDeviceOutput?.stopRecording();
- }
- onCameraFrame(callback: OnCameraFrameCallback | null = null) {
- this.onCameraFrameCallback = callback;
- }
- onCameraFrameListener(option: OnCameraFrameListenerOption) {
- onCameraFrameListenerOption = option;
- }
- cameraFrameOnStart(option?: CameraFrameListenerStartOption) {
- this.isListening = true;
- option?.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult);
- }
- cameraFrameOnStop(option?: StopOption) {
- this.isListening = false;
- option?.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult);
- }
-}
-//# sourceMappingURL=camera.uts.map
\ No newline at end of file
diff --git a/unpackage/dist/dev/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/camera.uts.map b/unpackage/dist/dev/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/camera.uts.map
deleted file mode 100644
index 9cb64e5..0000000
--- a/unpackage/dist/dev/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/camera.uts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"camera.uts","sourceRoot":"","sources":["uni_modules/Skin-cameraUTS/utssdk/app-ios/camera.uts"],"names":[],"mappings":"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","sourcesContent":["import { UIImage, UIView } from 'UIKit';\nimport { AVCaptureDevice, AVCaptureDeviceInput, AVCaptureSession, AVCaptureVideoPreviewLayer, AVMediaType, AVLayerVideoGravity, AVCaptureVideoDataOutput, AVCaptureVideoDataOutputSampleBufferDelegate, AVCaptureOutput, AVCaptureConnection, AVCapturePhotoOutput, AVCapturePhotoSettings, AVCapturePhotoCaptureDelegate, AVCaptureMovieFileOutput, AVCaptureFileOutputRecordingDelegate, AVCaptureFileOutput } from \"AVFoundation\";\nimport { CMSampleBuffer, CMSampleBufferGetImageBuffer } from 'CoreMedia';\nimport { DispatchQueue } from 'Dispatch';\nimport { CVPixelBufferGetWidth, CVPixelBufferGetHeight } from \"CoreVideo\";\nimport { NSError, URL } from \"Foundation\";\n\nimport {\n\tTakePhotoOption,\n\tGeneralCallbackResult,\n\tTakePhotoSuccessCallbackResult,\n\tCameraContextSetZoomOption,\n\tSetZoomSuccessCallbackResult,\n\tCameraContextStopRecordOption,\n\tCameraContextStartRecordOption,\n\tStartRecordTimeoutCallbackResult,\n\tStopRecordSuccessCallbackResult,\n\tOnCameraFrameCallback,\n\tOnCameraFrameCallbackResult,\n\tOnCameraFrameListenerOption,\n\tCameraFrameListenerStartOption,\n\tStopOption,\n\n\tCameraConfig,\n\tFlashMode,\n\tDevicePosition,\n\tResolution\n} from '../interface'\nimport { AVCapturePhoto } from 'AVFoundation';\n\n\n\nconst RESOLUTION_MAP = new Map([\n\t['low', AVCaptureSession.Preset.low],\n\t['medium', AVCaptureSession.Preset.medium],\n\t['high', AVCaptureSession.Preset.high],\n])\n\nconst FLASH_MODE_MAP = new Map([\n\t['auto', AVCaptureDevice.TorchMode.auto],\n\t['on', AVCaptureDevice.TorchMode.on],\n\t['torch', AVCaptureDevice.TorchMode.on],\n\t['off', AVCaptureDevice.TorchMode.off],\n])\n\n\nlet fileOutputRecordingDelegate : MyAVCaptureFileOutputRecordingDelegate | null = null;\nlet capturePhotoCaptureDelegate : MyAVCapturePhotoCaptureDelegate | null = null;\nlet onCameraFrameListenerOption : OnCameraFrameListenerOption | null = null;\nlet cameraContextStopRecordOption : CameraContextStopRecordOption | null = null;\n\nclass MyAVCaptureFileOutputRecordingDelegate implements AVCaptureFileOutputRecordingDelegate {\n\tprivate option : CameraContextStartRecordOption;\n\n\tconstructor(option : CameraContextStartRecordOption) {\n\t\tthis.option = option;\n\t}\n\n\tfileOutput(output : AVCaptureFileOutput, @argumentLabel(\"didStartRecordingTo\") fileURL : URL, @argumentLabel(\"from\") connections : [AVCaptureConnection]) : void {\n\t\tthis.option.success?.({\n\t\t\terrMsg: 'ok'\n\t\t} as GeneralCallbackResult)\n\t}\n\n\tfileOutput(output : AVCaptureFileOutput, @argumentLabel(\"didFinishRecordingTo\") outputFileURL : URL, @argumentLabel(\"from\") connections : [AVCaptureConnection], @argumentLabel(\"error\") error ?: NSError) : void {\n\t\tif (error == null) {\n\t\t\tcameraContextStopRecordOption?.success?.({\n\t\t\t\ttempVideoPath: outputFileURL.path + \"\",\n\t\t\t\terrMsg: 'ok'\n\t\t\t} as StopRecordSuccessCallbackResult)\n\n\t\t\tthis.option.timeoutCallback?.({\n\t\t\t\ttempVideoPath: outputFileURL.path + \"\"\n\t\t\t} as StartRecordTimeoutCallbackResult)\n\t\t} else {\n\t\t\tcameraContextStopRecordOption?.fail?.({\n\t\t\t\terrMsg: '录制失败'\n\t\t\t} as GeneralCallbackResult)\n\t\t\tcameraContextStopRecordOption?.complete?.({\n\t\t\t\terrMsg: '录制失败'\n\t\t\t} as GeneralCallbackResult)\n\t\t}\n\n\t}\n\n}\n\nclass MyAVCapturePhotoCaptureDelegate implements AVCapturePhotoCaptureDelegate {\n\tprivate option : TakePhotoOption;\n\n\tconstructor(option : TakePhotoOption) {\n\t\tthis.option = option;\n\t}\n\n\tcaptureOutput(output : AVCapturePhotoOutput, @argumentLabel(\"didFinishProcessingPhoto\") photo : AVCapturePhoto, @argumentLabel(\"error\") error : Error) : void {\n\t\tlet imageData = photo.fileDataRepresentation()\n\t\tif (imageData == null) {\n\t\t\tconst result : GeneralCallbackResult = {\n\t\t\t\terrMsg: \"拍照失败\"\n\t\t\t}\n\t\t\tthis.option.fail?.(result)\n\t\t\tthis.option.complete?.(result)\n\t\t\treturn;\n\t\t}\n\t\tlet path = UTSiOS.getDataPath() + (new Date().getTime()).toString() + \".jpg\";\n\t\tlet url = new URL(fileURLWithPath = path);\n\n\t\tlet quality = this.option.quality ?? \"original\"\n\t\tif (quality == 'original') {\n\t\t\ttry {\n\t\t\t\tUTSiOS.try(imageData!.write(to = url, options = NSData.WritingOptions.atomic))\n\n\t\t\t\tthis.option.success?.({\n\t\t\t\t\ttempImagePath: path,\n\t\t\t\t\tquality: quality,\n\t\t\t\t\terrMsg: 'ok'\n\t\t\t\t} as TakePhotoSuccessCallbackResult)\n\t\t\t\tthis.option.complete?.({\n\t\t\t\t\terrMsg: 'ok'\n\t\t\t\t} as GeneralCallbackResult)\n\t\t\t} catch (e) {\n\t\t\t\tconst result : GeneralCallbackResult = {\n\t\t\t\t\terrMsg: JSON.stringify(e)\n\t\t\t\t}\n\t\t\t\tthis.option.fail?.(result)\n\t\t\t\tthis.option.complete?.(result)\n\t\t\t}\n\t\t} else {\n\t\t\tlet image = UIImage(data = imageData!)\n\t\t\tif (image != null) {\n\t\t\t\tlet _quality : number = 0.5;\n\t\t\t\tif (quality == 'high') {\n\t\t\t\t\t_quality = 1.0;\n\t\t\t\t} else if (quality == 'normal') {\n\t\t\t\t\t_quality = 0.8;\n\t\t\t\t} else if (quality == 'low') {\n\t\t\t\t\t_quality = 0.5;\n\t\t\t\t}\n\t\t\t\tlet data = image!.jpegData(compressionQuality = _quality.toDouble())!\n\n\t\t\t\ttry {\n\t\t\t\t\tUTSiOS.try(data.write(to = url, options = NSData.WritingOptions.atomic))\n\n\t\t\t\t\tthis.option.success?.({\n\t\t\t\t\t\ttempImagePath: path,\n\t\t\t\t\t\tquality: quality,\n\t\t\t\t\t\terrMsg: 'ok'\n\t\t\t\t\t} as TakePhotoSuccessCallbackResult)\n\t\t\t\t\tthis.option.complete?.({\n\t\t\t\t\t\terrMsg: 'ok'\n\t\t\t\t\t} as GeneralCallbackResult)\n\t\t\t\t} catch (e) {\n\t\t\t\t\tconst result : GeneralCallbackResult = {\n\t\t\t\t\t\terrMsg: JSON.stringify(e)\n\t\t\t\t\t}\n\t\t\t\t\tthis.option.fail?.(result)\n\t\t\t\t\tthis.option.complete?.(result)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst result : GeneralCallbackResult = {\n\t\t\t\t\terrMsg: \"拍照失败\"\n\t\t\t\t}\n\t\t\t\tthis.option.fail?.(result)\n\t\t\t\tthis.option.complete?.(result)\n\t\t\t}\n\t\t}\n\t}\n\n}\n\nexport class CameraView implements AVCaptureVideoDataOutputSampleBufferDelegate {\n\n\tprivate captureSession ?: AVCaptureSession;\n\tprivate videoDeviceInput ?: AVCaptureDeviceInput;\n\tprivate photoDeviceOutput ?: AVCapturePhotoOutput;\n\tprivate movieDeviceOutput ?: AVCaptureMovieFileOutput;\n\tprivate previewLayer ?: AVCaptureVideoPreviewLayer;\n\tprivate previewView ?: UIView;\n\tprivate comp ?: UTSComponent;\n\tprivate flashMode : FlashMode = 'auto'\n\tprivate devicePosition : DevicePosition = 'back'\n\tprivate resolution : Resolution = 'medium'\n\tprivate isListening : boolean = false\n\tprivate onCameraFrameCallback : OnCameraFrameCallback | null = null;\n\n\tconstructor(previewView : UIView, comp : UTSComponent, config : CameraConfig = {} as CameraConfig) {\n\t\tsuper.init();\n\t\tthis.previewView = previewView\n\t\tthis.comp = comp\n\t\tthis.flashMode = config.flash ?? 'auto'\n\t\tthis.devicePosition = config.devicePosition ?? 'back'\n\t\tthis.resolution = config.resolution ?? 'medium'\n\t\tthis.setupCamera();\n\t}\n\n\tsetupCamera() {\n\t\tthis.captureSession = new AVCaptureSession();\n\t\tlet targetResolution = RESOLUTION_MAP.get(this.resolution) ?? AVCaptureSession.Preset.high;\n\t\tthis.captureSession!.sessionPreset = targetResolution;\n\t\tlet device = this.getCameraDevice();\n\t\ttry {\n\t\t\t//相机\n\t\t\tlet deviceInput = UTSiOS.try(new AVCaptureDeviceInput(device = device))\n\t\t\tif (this.captureSession!.canAddInput(deviceInput)) {\n\t\t\t\tthis.captureSession!.addInput(deviceInput);\n\t\t\t}\n\t\t\t//实时流输出\n\t\t\tlet output = new AVCaptureVideoDataOutput();\n\t\t\toutput.setSampleBufferDelegate(this, queue = DispatchQueue.main);\n\t\t\tif (this.captureSession!.canAddOutput(output)) {\n\t\t\t\tthis.captureSession!.addOutput(output);\n\t\t\t}\n\n\t\t\tlet photoOutput = new AVCapturePhotoOutput();\n\t\t\t// let photoSettings = new AVCapturePhotoSettings(format = [AVVideoCodecKey = AVVideoCodecType.jpeg]);\n\t\t\t// photoOutput.setPreparedPhotoSettingsArray([photoSettings], completionHandler = null);\n\t\t\tif (this.captureSession!.canAddOutput(photoOutput)) {\n\t\t\t\tthis.captureSession!.addOutput(photoOutput);\n\t\t\t}\n\n\t\t\tlet movieOutput = new AVCaptureMovieFileOutput();\n\t\t\tif (this.captureSession!.canAddOutput(movieOutput)) {\n\t\t\t\tthis.captureSession!.addOutput(movieOutput);\n\t\t\t}\n\n\t\t\tthis.videoDeviceInput = deviceInput;\n\t\t\tthis.photoDeviceOutput = photoOutput;\n\t\t\tthis.movieDeviceOutput = movieOutput;\n\t\t\tthis.previewLayer = new AVCaptureVideoPreviewLayer(session = this.captureSession!)\n\t\t\tthis.previewLayer!.videoGravity = AVLayerVideoGravity.resizeAspectFill;\n\t\t\tthis.previewLayer!.frame = this.previewView!.layer.bounds;\n\t\t\tthis.previewView!.layer.addSublayer(this.previewLayer!)\n\t\t\tthis.captureSession!.startRunning();\n\n\t\t\tlet ret : Map = new Map();\n\t\t\tret.set(\"maxZoom\", device.maxAvailableVideoZoomFactor)\n\t\t\tlet detail : Map = new Map();\n\t\t\tdetail.set(\"detail\", ret)\n\t\t\tthis.comp?.$emit(\"ready\", detail);\n\t\t} catch (e) {\n\t\t\tlet ret : Map = new Map();\n\t\t\tret.set(\"errMsg\", JSON.stringify(e))\n\t\t\tlet detail : Map = new Map();\n\t\t\tdetail.set(\"detail\", ret)\n\t\t\tthis.comp?.$emit(\"error\", detail);\n\t\t}\n\t}\n\n\tgetCameraDevice() : AVCaptureDevice {\n\t\tlet cameras = AVCaptureDevice.devices(for = AVMediaType.video)\n\t\tlet frontCamera : AVCaptureDevice | null = null;\n\t\tlet backCamera : AVCaptureDevice | null = null;\n\n\t\tlet index = 0;\n\t\twhile (index < cameras.length) {\n\t\t\tif (index == cameras.length) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tlet camera = cameras[index.toInt()] as AVCaptureDevice;\n\t\t\tif (camera.position == AVCaptureDevice.Position.back) {\n\t\t\t\tbackCamera = camera;\n\t\t\t} else {\n\t\t\t\tfrontCamera = camera;\n\t\t\t}\n\t\t\tindex++;\n\t\t}\n\n\t\tif (this.devicePosition == 'back') {\n\t\t\treturn backCamera!;\n\t\t} else {\n\t\t\treturn frontCamera!;\n\t\t}\n\t}\n\n\tcaptureOutput(output : AVCaptureOutput, @argumentLabel(\"didOutput\") sampleBuffer : CMSampleBuffer, @argumentLabel(\"from\") connection : AVCaptureConnection) : void {\n\n\t\tif (this.isListening) {\n\t\t\tlet imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer)\n\t\t\tlet width = CVPixelBufferGetWidth(imageBuffer!)\n\t\t\tlet height = CVPixelBufferGetHeight(imageBuffer!);\n\n\t\t\tconst res : OnCameraFrameCallbackResult = {\n\t\t\t\twidth: width as Int,\n\t\t\t\theight: height as Int,\n\t\t\t\tdata: imageBuffer!\n\t\t\t};\n\t\t\tthis.onCameraFrameCallback?.(res)\n\t\t\tonCameraFrameListenerOption?.success?.({\n\t\t\t\twidth: width as Int,\n\t\t\t\theight: height as Int,\n\t\t\t\tdata: imageBuffer!\n\t\t\t} as OnCameraFrameCallbackResult)\n\n\t\t\t// this.onCameraFrameListenerOption?.success({\n\t\t\t// \twidth: width as Int,\n\t\t\t// \theight: height as Int,\n\t\t\t// \tdata: imageBuffer!\n\t\t\t// } as OnCameraFrameCallbackResult)\n\n\n\t\t\t// if (imageBuffer != null) {\n\t\t\t// \tlet ciImage = new CIImage(cvPixelBuffer = imageBuffer!)\n\t\t\t// \tlet temporaryContext = new CIContext(options = null)\n\t\t\t// \tlet width = CVPixelBufferGetWidth(imageBuffer!)\n\t\t\t// \tlet height = CVPixelBufferGetHeight(imageBuffer!);\n\t\t\t// \tlet videoImage = temporaryContext.createCGImage(ciImage, from = new CGRect(x = 0, y = 0, width = width, height = height))\n\t\t\t// \tlet image = new UIImage(cgImage = videoImage!)\n\n\t\t\t// \tthis.onCameraFrameCallback?.({\n\t\t\t// \t\twidth: width as Int,\n\t\t\t// \t\theight: height as Int,\n\t\t\t// \t\tdata: image\n\t\t\t// \t} as OnCameraFrameCallbackResult)\n\t\t\t// }\n\t\t}\n\t}\n\n\tbindCamera() {\n\t\tthis.captureSession!.startRunning();\n\t}\n\n\n\tunbindCamera() {\n\t\tthis.captureSession!.stopRunning();\n\t}\n\n\n\tsetConfig(config : CameraConfig = {} as CameraConfig) {\n\t\tthis.flashMode = config.flash ?? 'auto'\n\t\tthis.devicePosition = config.devicePosition ?? 'back'\n\t\tthis.resolution = config.resolution ?? 'medium'\n\t}\n\n\tsetFlash(mode : FlashMode) {\n\t\tthis.flashMode = mode\n\t\tlet targetFlash = FLASH_MODE_MAP.get(this.flashMode) ?? AVCaptureDevice.TorchMode.auto;\n\t\ttry {\n\t\t\tlet device = this.getCameraDevice();\n\t\t\tif (device.hasTorch && device.isTorchAvailable) {\n\t\t\t\tUTSiOS.try(device.lockForConfiguration());\n\t\t\t\tdevice.torchMode = targetFlash;\n\t\t\t\tdevice.unlockForConfiguration()\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t__f__('log','at uni_modules/Skin-cameraUTS/utssdk/app-ios/camera.uts:345',e)\n\t\t}\n\t}\n\n\n\tswitchCamera(position : DevicePosition) {\n\t\tif (!this.captureSession!.isRunning) {\n\t\t\treturn;\n\t\t}\n\t\tthis.devicePosition = position;\n\t\ttry {\n\t\t\tthis.captureSession!.beginConfiguration();\n\t\t\tthis.captureSession!.removeInput(this.videoDeviceInput!);\n\t\t\tlet device = this.getCameraDevice();\n\n\t\t\tlet deviceInput = UTSiOS.try(new AVCaptureDeviceInput(device = device))\n\t\t\tthis.captureSession!.addInput(deviceInput);\n\t\t\tthis.videoDeviceInput = deviceInput;\n\t\t\tthis.captureSession!.commitConfiguration();\n\t\t} catch (e) {\n\t\t\t__f__('log','at uni_modules/Skin-cameraUTS/utssdk/app-ios/camera.uts:365',e)\n\t\t}\n\t}\n\n\ttakePhoto(option : TakePhotoOption) {\n\t\tcapturePhotoCaptureDelegate = new MyAVCapturePhotoCaptureDelegate(option);\n\t\tlet settings = new AVCapturePhotoSettings()\n\t\tthis.photoDeviceOutput?.capturePhoto(with = settings, delegate = capturePhotoCaptureDelegate!);\n\t}\n\n\n\tsetZoom(option : CameraContextSetZoomOption) {\n\t\ttry {\n\t\t\tlet device = this.getCameraDevice();\n\t\t\t// if (device.isRampingVideoZoom) {\n\t\t\tUTSiOS.try(device.lockForConfiguration());\n\t\t\tdevice.videoZoomFactor = option.zoom.toDouble();\n\t\t\tdevice.unlockForConfiguration()\n\n\t\t\toption.success?.({\n\t\t\t\tzoom: option.zoom,\n\t\t\t\terrMsg: 'ok'\n\t\t\t} as SetZoomSuccessCallbackResult)\n\t\t\toption.complete?.({\n\t\t\t\terrMsg: 'ok'\n\t\t\t} as GeneralCallbackResult)\n\t\t\t// } else {\n\t\t\t// \tconst result : GeneralCallbackResult = {\n\t\t\t// \t\terrMsg: '相机不支持缩放'\n\t\t\t// \t}\n\t\t\t// \toption.complete?.(result)\n\t\t\t// \toption.fail?.(result)\n\t\t\t// }\n\t\t} catch (e) {\n\t\t\tconst result : GeneralCallbackResult = {\n\t\t\t\terrMsg: JSON.stringify(e)\n\t\t\t}\n\t\t\toption.complete?.(result)\n\t\t\toption.fail?.(result)\n\t\t}\n\t}\n\n\tstartRecord(option : CameraContextStartRecordOption) {\n\t\tlet isRecording = this.movieDeviceOutput?.isRecording ?? false;\n\t\tif (isRecording) {\n\t\t\toption.fail?.({\n\t\t\t\terrMsg: '已经在录制或相机不存在'\n\t\t\t} as GeneralCallbackResult)\n\t\t\toption.complete?.({\n\t\t\t\terrMsg: '已经在录制或相机不存在'\n\t\t\t} as GeneralCallbackResult)\n\t\t\treturn\n\t\t}\n\n\t\tfileOutputRecordingDelegate = new MyAVCaptureFileOutputRecordingDelegate(option);\n\t\tlet path = UTSiOS.getDataPath() + (new Date().getTime()).toString() + \".mp4\";\n\t\tlet url = new URL(fileURLWithPath = path);\n\t\tthis.movieDeviceOutput?.startRecording(to = url, recordingDelegate = fileOutputRecordingDelegate!);\n\n\t\tif (option.timeout != null && option.timeout! > 0) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.movieDeviceOutput?.stopRecording();\n\t\t\t}, (option.timeout!).toInt())\n\t\t}\n\t}\n\n\n\tstopRecord(option : CameraContextStopRecordOption) {\n\t\tlet isRecording = this.movieDeviceOutput?.isRecording ?? false;\n\t\tif (!isRecording) {\n\t\t\toption.fail?.({\n\t\t\t\terrMsg: '未开始录制'\n\t\t\t} as GeneralCallbackResult)\n\t\t\toption.complete?.({\n\t\t\t\terrMsg: '未开始录制'\n\t\t\t} as GeneralCallbackResult)\n\t\t\treturn\n\t\t}\n\t\tcameraContextStopRecordOption = option;\n\t\tthis.movieDeviceOutput?.stopRecording();\n\t}\n\n\n\tonCameraFrame(callback : OnCameraFrameCallback | null = null) {\n\t\tthis.onCameraFrameCallback = callback\n\t}\n\n\tonCameraFrameListener(option : OnCameraFrameListenerOption) {\n\t\tonCameraFrameListenerOption = option\n\t}\n\n\tcameraFrameOnStart(option ?: CameraFrameListenerStartOption) {\n\t\tthis.isListening = true\n\t\toption?.success?.({\n\t\t\terrMsg: 'ok'\n\t\t} as GeneralCallbackResult)\n\t}\n\n\tcameraFrameOnStop(option ?: StopOption) {\n\t\tthis.isListening = false\n\t\toption?.success?.({\n\t\t\terrMsg: 'ok'\n\t\t} as GeneralCallbackResult)\n\t}\n}"]}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.uts b/unpackage/dist/dev/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.uts
deleted file mode 100644
index b581195..0000000
--- a/unpackage/dist/dev/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.uts
+++ /dev/null
@@ -1,165 +0,0 @@
-import { TakePhotoOption, GeneralCallbackResult, CameraContextSetZoomOption, CameraContextStartRecordOption, CameraContextStopRecordOption, OnCameraFrameCallback, CameraFrameListenerStartOption, StopOption, TakePhoto, SetZoom, StartRecord, StopRecord, StartCameraFrame, StopCameraFrame, OnCameraFrameListenerOption, SwitchCamera, SwitchOption } from '../interface';
-import { CameraManager } from './CameraManager';
-class CameraFrameListener {
- context: CameraContext;
- constructor(context: CameraContext) {
- this.context = context;
- }
- start(): void;
- start(option?: CameraFrameListenerStartOption) {
- CameraManager.getInstance().getCameraView()?.cameraFrameOnStart(option);
- }
- stop(): void;
- stop(option?: StopOption) {
- CameraManager.getInstance().getCameraView()?.cameraFrameOnStop(option);
- }
-}
-class CameraContext {
- private mCameraFrameListener: CameraFrameListener | null = null;
- constructor() {
- }
- takePhoto(option: TakePhotoOption) {
- let camera = CameraManager.getInstance().getCameraView();
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- return;
- }
- camera?.takePhoto(option);
- }
- setZoom(option: CameraContextSetZoomOption) {
- let camera = CameraManager.getInstance().getCameraView();
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- return;
- }
- camera?.setZoom(option);
- }
- startRecord(option: CameraContextStartRecordOption) {
- let camera = CameraManager.getInstance().getCameraView();
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- return;
- }
- camera?.startRecord(option);
- }
- stopRecord(option: CameraContextStopRecordOption) {
- let camera = CameraManager.getInstance().getCameraView();
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- return;
- }
- camera?.stopRecord(option);
- }
- onCameraFrame(): CameraFrameListener;
- onCameraFrame(callback: OnCameraFrameCallback | null = null): CameraFrameListener {
- if (this.mCameraFrameListener == null) {
- this.mCameraFrameListener = new CameraFrameListener(this);
- }
- CameraManager.getInstance().getCameraView()?.onCameraFrame(callback);
- return this.mCameraFrameListener!;
- }
- //////////////////////////////////////////////////////
- onCameraFrameListener(option: OnCameraFrameListenerOption) {
- let camera = CameraManager.getInstance().getCameraView();
- if (camera == null) {
- return;
- }
- camera?.onCameraFrameListener(option);
- }
- cameraFrameOnStart(option: CameraFrameListenerStartOption) {
- let camera = CameraManager.getInstance().getCameraView();
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- return;
- }
- camera?.cameraFrameOnStart(option);
- }
- cameraFrameOnStop(option: StopOption) {
- let camera = CameraManager.getInstance().getCameraView();
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- return;
- }
- camera?.cameraFrameOnStop(option);
- }
- switchCamera(option: SwitchOption) {
- let camera = CameraManager.getInstance().getCameraView();
- if (camera == null) {
- option.fail?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: '未找到相机'
- } as GeneralCallbackResult);
- return;
- }
- camera?.switchCamera(option.position);
- option.success?.({
- errMsg: 'ok'
- } as GeneralCallbackResult);
- option.complete?.({
- errMsg: 'ok'
- } as GeneralCallbackResult);
- }
-}
-let context: CameraContext = new CameraContext();
-export function createCameraContext(): CameraContext {
- return context;
-}
-//////////////////////////////////////////////////////////////////////////////////////////////////
-export const takePhoto: TakePhoto = function (options: TakePhotoOption) {
- context.takePhoto(options);
-};
-export const setZoom: SetZoom = function (options: CameraContextSetZoomOption) {
- context.setZoom(options);
-};
-export const startRecord: StartRecord = function (options: CameraContextStartRecordOption) {
- context.startRecord(options);
-};
-export const stopRecord: StopRecord = function (options: CameraContextStopRecordOption) {
- context.stopRecord(options);
-};
-@UTSJS.keepAlive
-export function onCameraFrameListener(options: OnCameraFrameListenerOption) {
- context.onCameraFrameListener(options);
-}
-export const startCameraFrame: StartCameraFrame = function (options: CameraFrameListenerStartOption) {
- context.cameraFrameOnStart(options);
-};
-export const stopCameraFrame: StopCameraFrame = function (options: StopOption) {
- context.cameraFrameOnStop(options);
-};
-export const switchCamera: SwitchCamera = function (options: SwitchOption) {
- context.switchCamera(options);
-};
-//# sourceMappingURL=index.uts.map
\ No newline at end of file
diff --git a/unpackage/dist/dev/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.uts.map b/unpackage/dist/dev/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.uts.map
deleted file mode 100644
index ca31e79..0000000
--- a/unpackage/dist/dev/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.uts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.uts","sourceRoot":"","sources":["uni_modules/Skin-cameraUTS/utssdk/app-ios/index.uts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tTakePhotoOption,\n\tGeneralCallbackResult,\n\tCameraContextSetZoomOption,\n\tCameraContextStartRecordOption,\n\tCameraContextStopRecordOption,\n\tOnCameraFrameCallback,\n\tCameraFrameListenerStartOption,\n\tStopOption,\n\tTakePhoto,\n\tSetZoom,\n\tStartRecord,\n\tStopRecord,\n\tStartCameraFrame,\n\tStopCameraFrame,\n\tOnCameraFrameListenerOption,\n\tSwitchCamera,\n\tSwitchOption\n} from '../interface'\nimport { CameraManager } from './CameraManager';\n\nclass CameraFrameListener {\n\tcontext : CameraContext\n\tconstructor(context : CameraContext) {\n\t\tthis.context = context\n\t}\n\tstart() : void\n\tstart(option ?: CameraFrameListenerStartOption) {\n\t\tCameraManager.getInstance().getCameraView()?.cameraFrameOnStart(option)\n\t}\n\tstop() : void\n\tstop(option ?: StopOption) {\n\t\tCameraManager.getInstance().getCameraView()?.cameraFrameOnStop(option)\n\t}\n}\n\nclass CameraContext {\n\tprivate mCameraFrameListener : CameraFrameListener | null = null\n\n\tconstructor() {\n\n\t}\n\n\ttakePhoto(option : TakePhotoOption) {\n\t\tlet camera = CameraManager.getInstance().getCameraView()\n\t\tif (camera == null) {\n\t\t\toption.fail?.({\n\t\t\t\terrMsg: '未找到相机'\n\t\t\t} as GeneralCallbackResult)\n\t\t\toption.complete?.({\n\t\t\t\terrMsg: '未找到相机'\n\t\t\t} as GeneralCallbackResult)\n\t\t\treturn;\n\t\t}\n\t\tcamera?.takePhoto(option)\n\t}\n\n\tsetZoom(option : CameraContextSetZoomOption) {\n\t\tlet camera = CameraManager.getInstance().getCameraView()\n\t\tif (camera == null) {\n\t\t\toption.fail?.({\n\t\t\t\terrMsg: '未找到相机'\n\t\t\t} as GeneralCallbackResult)\n\t\t\toption.complete?.({\n\t\t\t\terrMsg: '未找到相机'\n\t\t\t} as GeneralCallbackResult)\n\t\t\treturn;\n\t\t}\n\n\t\tcamera?.setZoom(option)\n\t}\n\n\tstartRecord(option : CameraContextStartRecordOption) {\n\t\tlet camera = CameraManager.getInstance().getCameraView()\n\t\tif (camera == null) {\n\t\t\toption.fail?.({\n\t\t\t\terrMsg: '未找到相机'\n\t\t\t} as GeneralCallbackResult)\n\t\t\toption.complete?.({\n\t\t\t\terrMsg: '未找到相机'\n\t\t\t} as GeneralCallbackResult)\n\t\t\treturn;\n\t\t}\n\t\tcamera?.startRecord(option)\n\t}\n\n\tstopRecord(option : CameraContextStopRecordOption) {\n\t\tlet camera = CameraManager.getInstance().getCameraView()\n\t\tif (camera == null) {\n\t\t\toption.fail?.({\n\t\t\t\terrMsg: '未找到相机'\n\t\t\t} as GeneralCallbackResult)\n\t\t\toption.complete?.({\n\t\t\t\terrMsg: '未找到相机'\n\t\t\t} as GeneralCallbackResult)\n\t\t\treturn;\n\t\t}\n\t\tcamera?.stopRecord(option)\n\t}\n\n\tonCameraFrame() : CameraFrameListener\n\tonCameraFrame(callback : OnCameraFrameCallback | null = null) : CameraFrameListener {\n\t\tif (this.mCameraFrameListener == null) {\n\t\t\tthis.mCameraFrameListener = new CameraFrameListener(this)\n\t\t}\n\t\tCameraManager.getInstance().getCameraView()?.onCameraFrame(callback)\n\t\treturn this.mCameraFrameListener!\n\t}\n\t//////////////////////////////////////////////////////\n\tonCameraFrameListener(option : OnCameraFrameListenerOption) {\n\t\tlet camera = CameraManager.getInstance().getCameraView()\n\t\tif (camera == null) {\n\t\t\treturn;\n\t\t}\n\t\tcamera?.onCameraFrameListener(option)\n\t}\n\n\tcameraFrameOnStart(option : CameraFrameListenerStartOption) {\n\t\tlet camera = CameraManager.getInstance().getCameraView()\n\t\tif (camera == null) {\n\t\t\toption.fail?.({\n\t\t\t\terrMsg: '未找到相机'\n\t\t\t} as GeneralCallbackResult)\n\t\t\toption.complete?.({\n\t\t\t\terrMsg: '未找到相机'\n\t\t\t} as GeneralCallbackResult)\n\t\t\treturn;\n\t\t}\n\t\tcamera?.cameraFrameOnStart(option)\n\t}\n\n\tcameraFrameOnStop(option : StopOption) {\n\t\tlet camera = CameraManager.getInstance().getCameraView()\n\t\tif (camera == null) {\n\t\t\toption.fail?.({\n\t\t\t\terrMsg: '未找到相机'\n\t\t\t} as GeneralCallbackResult)\n\t\t\toption.complete?.({\n\t\t\t\terrMsg: '未找到相机'\n\t\t\t} as GeneralCallbackResult)\n\t\t\treturn;\n\t\t}\n\t\tcamera?.cameraFrameOnStop(option)\n\t}\n\n\tswitchCamera(option : SwitchOption) {\n\t\tlet camera = CameraManager.getInstance().getCameraView()\n\t\tif (camera == null) {\n\t\t\toption.fail?.({\n\t\t\t\terrMsg: '未找到相机'\n\t\t\t} as GeneralCallbackResult)\n\t\t\toption.complete?.({\n\t\t\t\terrMsg: '未找到相机'\n\t\t\t} as GeneralCallbackResult)\n\t\t\treturn;\n\t\t}\n\t\tcamera?.switchCamera(option.position)\n\n\t\toption.success?.({\n\t\t\terrMsg: 'ok'\n\t\t} as GeneralCallbackResult)\n\t\toption.complete?.({\n\t\t\terrMsg: 'ok'\n\t\t} as GeneralCallbackResult)\n\t}\n}\n\nlet context : CameraContext = new CameraContext();\n\nexport function createCameraContext() : CameraContext {\n\treturn context;\n}\n\n\n//////////////////////////////////////////////////////////////////////////////////////////////////\nexport const takePhoto : TakePhoto = function (options : TakePhotoOption) {\n\tcontext.takePhoto(options)\n}\n\nexport const setZoom : SetZoom = function (options : CameraContextSetZoomOption) {\n\tcontext.setZoom(options)\n}\n\nexport const startRecord : StartRecord = function (options : CameraContextStartRecordOption) {\n\tcontext.startRecord(options)\n}\n\nexport const stopRecord : StopRecord = function (options : CameraContextStopRecordOption) {\n\tcontext.stopRecord(options)\n}\n\n@UTSJS.keepAlive\nexport function onCameraFrameListener(options : OnCameraFrameListenerOption) {\n\tcontext.onCameraFrameListener(options)\n}\n\nexport const startCameraFrame : StartCameraFrame = function (options : CameraFrameListenerStartOption) {\n\tcontext.cameraFrameOnStart(options)\n}\n\nexport const stopCameraFrame : StopCameraFrame = function (options : StopOption) {\n\tcontext.cameraFrameOnStop(options)\n}\n\nexport const switchCamera : SwitchCamera = function (options : SwitchOption) {\n\tcontext.switchCamera(options)\n}"]}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.vue b/unpackage/dist/dev/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.vue
deleted file mode 100644
index f07953c..0000000
--- a/unpackage/dist/dev/.uvue/app-ios/uni_modules/Skin-cameraUTS/utssdk/app-ios/index.vue
+++ /dev/null
@@ -1,154 +0,0 @@
-//
-//
-//
-//
-import { UIView } from "UIKit";
-import { CameraView } from "./camera";
-import { CameraConfig } from '../interface';
-import { CameraManager } from "./CameraManager";
-//原生提供以下属性或方法的实现
-export default {
- data(): UTSJSONObject {
- return {};
- },
- /**
- * 组件名称,也就是开发者使用的标签
- */
- name: "xf-camera",
- /**
- * 组件涉及的事件声明,只有声明过的事件,才能被正常发送
- */
- emits: ['stop', 'error', 'ready'],
- /**
- * 属性声明,组件的使用者会传递这些属性值到组件
- */
- props: {
- "mode": {
- type: String,
- default: "normal"
- },
- "resolution": {
- type: String,
- default: "medium" // low | high
- },
- "position": {
- type: String,
- default: "back" // front前置 |back 后置
- },
- "flash": {
- type: String,
- default: "auto" // auto, on, off, torch
- },
- "frameSize": {
- type: String,
- default: "medium" // small|large
- }
- },
- /**
- * 属性变化监听器实现
- */
- watch: {
- "position": {
- /**
- * 这里监听属性变化,并进行组件内部更新
- */
- handler(newValue: String, _oldValue: String) {
- CameraManager.getInstance().getCameraView()?.switchCamera(newValue);
- },
- /**
- * 创建时是否通过此方法更新属性,默认值为false
- */
- immediate: false
- },
- "flash": {
- /**
- * 这里监听属性变化,并进行组件内部更新
- */
- handler(newValue: String, _oldValue: String) {
- CameraManager.getInstance().getCameraView()?.setFlash(newValue);
- },
- /**
- * 创建时是否通过此方法更新属性,默认值为false
- */
- immediate: false
- }
- },
- /**
- * 规则:如果没有配置expose,则methods中的方法均对外暴露,如果配置了expose,则以expose的配置为准向外暴露
- * ['publicMethod'] 含义为:只有 `publicMethod` 在实例上可用
- */
- expose: [],
- methods: {},
- /**
- * 组件被创建,组件第一个生命周期,
- * 在内存中被占用的时候被调用,开发者可以在这里执行一些需要提前执行的初始化逻辑
- * [可选实现]
- */
- created() {
- },
- /**
- * 对应平台的view载体即将被创建,对应前端beforeMount
- * [可选实现]
- */
- NVBeforeLoad() {
- },
- /**
- * 创建原生View,必须定义返回值类型
- * 开发者需要重点实现这个函数,声明原生组件被创建出来的过程,以及最终生成的原生组件类型
- * [必须实现]
- */
- NVLoad(): UIView {
- let previewView = new UIView();
- previewView.tag = 9527;
- return previewView;
- },
- /**
- * 原生View已创建
- * [可选实现]
- */
- NVLoaded() {
- },
- /**
- * 原生View布局完成
- * [可选实现]
- */
- NVLayouted() {
- let previewView = this.$el as UIView;
- let cameraView = new CameraView(previewView, this, {
- resolution: this.resolution,
- frameSize: this.frameSize,
- devicePosition: this.position,
- flash: this.flash
- } as CameraConfig);
- CameraManager.getInstance().setCameraView(cameraView);
- },
- /**
- * 原生View将释放
- * [可选实现]
- */
- NVBeforeUnload() {
- let ret: Map = new Map();
- let detail: Map = new Map();
- detail.set("detail", ret);
- this.$emit("stop", detail);
- CameraManager.getInstance().getCameraView()?.unbindCamera();
- },
- /**
- * 原生View已释放,这里可以做释放View之后的操作
- * [可选实现]
- */
- NVUnloaded() {
- CameraManager.getInstance().dispose();
- },
- /**
- * 组件销毁
- * [可选实现]
- */
- unmounted() {
- }
-};
-/*
-