Bladeren bron

统计 window.FaceDetector 的客户端数据

Michael Wang 5 jaren geleden
bovenliggende
commit
6a26f7efee
1 gewijzigde bestanden met toevoegingen van 43 en 0 verwijderingen
  1. 43 0
      src/components/FaceRecognition/FaceRecognition.vue

+ 43 - 0
src/components/FaceRecognition/FaceRecognition.vue

@@ -80,10 +80,15 @@ export default {
   },
   async mounted() {
     this.openCamera();
+
+    this.checkFaceDetectorTimeout = setTimeout(() => {
+      this.nativeFaceDetectorStats();
+    }, 60 * 1000);
   },
   beforeDestroy() {
     clearTimeout(this.retrySnapTimeout);
     clearTimeout(this.showSnapResultTimeout);
+    clearTimeout(this.checkFaceDetectorTimeout);
     if (this.$refs.video.srcObject) {
       this.$refs.video.srcObject.getTracks().forEach(function(track) {
         track.stop();
@@ -487,6 +492,44 @@ export default {
         throw e.message;
       }
     },
+    async nativeFaceDetectorStats() {
+      // 如果不存在 window.FaceDetector ,则不统计。chrome 76+ 在win7上是有window.FaceDetector的,但是不能执行成功。
+      if (!window.FaceDetector) {
+        window._hmt.push([
+          "_trackEvent",
+          "摄像头框",
+          "native FaceDetector",
+          "没有能力",
+        ]);
+        return;
+      }
+
+      try {
+        var canvas = document.createElement("canvas");
+        canvas.width = 220;
+        canvas.height = 165;
+
+        var context = canvas.getContext("2d");
+        context.drawImage(this.$refs.video, 0, 0, 220, 165);
+        var f = new window.FaceDetector();
+        const v = await f.detect(canvas);
+        console.log("nativeFaceDetector", v);
+        window._hmt.push([
+          "_trackEvent",
+          "摄像头框",
+          "native FaceDetector",
+          "成功",
+        ]);
+      } catch (e) {
+        console.log(e);
+        window._hmt.push([
+          "_trackEvent",
+          "摄像头框",
+          "native FaceDetector",
+          "失败",
+        ]);
+      }
+    },
   },
 };
 </script>