From 191100aca6b5afac1d3c76afeea56b3063b81071 Mon Sep 17 00:00:00 2001
From: chenyc <501753378@qq.com>
Date: 星期一, 15 一月 2024 16:17:56 +0800
Subject: [PATCH] 优化

---
 src/main.ts |  166 ++++++++++++++++++++++++++++---------------------------
 1 files changed, 84 insertions(+), 82 deletions(-)

diff --git a/src/main.ts b/src/main.ts
index dba4d47..633656d 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -4,95 +4,97 @@
 import router from './router/index'
 import "tracking";
 import "tracking/build/data/face";
+import "tracking/build/data/eye";
+import "tracking/build/data/mouth";
 import { ElMessage } from 'element-plus';
 import { createPinia } from 'pinia'
 import App from './App.vue'
 import './samples/node-api'
 
-function getUserMedia(constrains:any, success:any, error:any) {
-  if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
-      //最新标准API
-      ElMessage({ type: 'success', message: '支持人脸识别最新Api' });
-      navigator.mediaDevices.getUserMedia(constrains).then(success).catch(error);
-  } else if (navigator.webkitGetUserMedia) {
-    ElMessage({ type: 'success', message: '支持webkit内核浏览器' });
-      //webkit内核浏览器
-      navigator.webkitGetUserMedia(constrains).then(success).catch(error);
-  } else if (navigator.mozGetUserMedia) {
-    ElMessage({ type: 'success', message: '支持Firefox浏览器' });
-      //Firefox浏览器
-      navagator.mozGetUserMedia(constrains).then(success).catch(error);
-  } else if (navigator.getUserMedia) {
-    ElMessage({ type: 'success', message: '支持旧版API' });
-      //旧版API
-      navigator.getUserMedia(constrains).then(success).catch(error);
-  } else {
-    ElMessage('浏览器不支持getUserMedia');
-  }
-}
-// 要重写initUserMedia_ 方法,因为chrome的底层api已做调整
-window.tracking.initUserMedia_ = function (element: { srcObject: any; src: string; }, opt_options: { audio: any; }) {
-  const options = {
-      video: true,
-      audio: !!(opt_options && opt_options.audio)
-  };
-  getUserMedia(options, function (stream: Blob | MediaSource) {
-      try {
-          element.srcObject = stream;
-      } catch (err) {
-          element.src = window.URL.createObjectURL(stream);
-      }
-  }, function (e: { message: MessageParams; }) {
-    ElMessage(e.message);
-  }
-  );
-};
-// 重写视频捕获方法,因为不能停止 stop无效的bug
-window.tracking.trackVideo_ = function (element: CanvasImageSource, tracker: tracking.Tracker) {
-  console.log('trackVideo_');
-  var canvas = document.createElement('canvas');
-  var context = canvas.getContext('2d');
-  var width: number;
-  var height: number;
+// function getUserMedia(constrains:any, success:any, error:any) {
+//   if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
+//       //最新标准API
+//       ElMessage({ type: 'success', message: '支持人脸识别最新Api' });
+//       navigator.mediaDevices.getUserMedia(constrains).then(success).catch(error);
+//   } else if (navigator.webkitGetUserMedia) {
+//     ElMessage({ type: 'success', message: '支持webkit内核浏览器' });
+//       //webkit内核浏览器
+//       navigator.webkitGetUserMedia(constrains).then(success).catch(error);
+//   } else if (navigator.mozGetUserMedia) {
+//     ElMessage({ type: 'success', message: '支持Firefox浏览器' });
+//       //Firefox浏览器
+//       navagator.mozGetUserMedia(constrains).then(success).catch(error);
+//   } else if (navigator.getUserMedia) {
+//     ElMessage({ type: 'success', message: '支持旧版API' });
+//       //旧版API
+//       navigator.getUserMedia(constrains).then(success).catch(error);
+//   } else {
+//     ElMessage('浏览器不支持getUserMedia');
+//   }
+// }
+// // 要重写initUserMedia_ 方法,因为chrome的底层api已做调整
+// window.tracking.initUserMedia_ = function (element: { srcObject: any; src: string; }, opt_options: { audio: any; }) {
+//   const options = {
+//       video: true,
+//       audio: !!(opt_options && opt_options.audio)
+//   };
+//   getUserMedia(options, function (stream: Blob | MediaSource) {
+//       try {
+//           element.srcObject = stream;
+//       } catch (err) {
+//           element.src = window.URL.createObjectURL(stream);
+//       }
+//   }, function (e: { message: MessageParams; }) {
+//     ElMessage(e.message);
+//   }
+//   );
+// };
+// // 重写视频捕获方法,因为不能停止 stop无效的bug
+// window.tracking.trackVideo_ = function (element: CanvasImageSource, tracker: tracking.Tracker) {
+//   console.log('trackVideo_');
+//   var canvas = document.createElement('canvas');
+//   var context = canvas.getContext('2d');
+//   var width: number;
+//   var height: number;
 
-  var resizeCanvas_ = function () {
-      width = element.offsetWidth;
-      height = element.offsetHeight;
-      canvas.width = width;
-      canvas.height = height;
-  };
-  resizeCanvas_();
-  element.addEventListener('resize', resizeCanvas_);
+//   var resizeCanvas_ = function () {
+//       width = element.offsetWidth;
+//       height = element.offsetHeight;
+//       canvas.width = width;
+//       canvas.height = height;
+//   };
+//   resizeCanvas_();
+//   element.addEventListener('resize', resizeCanvas_);
 
-  var requestId: number;
-  var stopped = false;
-  var requestAnimationFrame_ = function () {
-      requestId = window.requestAnimationFrame(function () {
-          if (element.readyState === element.HAVE_ENOUGH_DATA) {
-              try {
-                  // Firefox v~30.0 gets confused with the video readyState firing an
-                  // erroneous HAVE_ENOUGH_DATA just before HAVE_CURRENT_DATA state,
-                  // hence keep trying to read it until resolved.
-                  context.drawImage(element, 0, 0, width, height);
-              } catch (err) { }
-              tracking.trackCanvasInternal_(canvas, tracker);
-          }
-          if (stopped !== true) {
-              requestAnimationFrame_();
-          }
-      });
-  };
-  var task = new tracking.TrackerTask(tracker);
-  task.on('stop', function () {
-      stopped = true;
-      window.cancelAnimationFrame(requestId);
-  });
-  task.on('run', function () {
-      stopped = false;
-      requestAnimationFrame_();
-  });
-  return task.run();
-};
+//   var requestId: number;
+//   var stopped = false;
+//   var requestAnimationFrame_ = function () {
+//       requestId = window.requestAnimationFrame(function () {
+//           if (element.readyState === element.HAVE_ENOUGH_DATA) {
+//               try {
+//                   // Firefox v~30.0 gets confused with the video readyState firing an
+//                   // erroneous HAVE_ENOUGH_DATA just before HAVE_CURRENT_DATA state,
+//                   // hence keep trying to read it until resolved.
+//                   context.drawImage(element, 0, 0, width, height);
+//               } catch (err) { }
+//               tracking.trackCanvasInternal_(canvas, tracker);
+//           }
+//           if (stopped !== true) {
+//               requestAnimationFrame_();
+//           }
+//       });
+//   };
+//   var task = new tracking.TrackerTask(tracker);
+//   task.on('stop', function () {
+//       stopped = true;
+//       window.cancelAnimationFrame(requestId);
+//   });
+//   task.on('run', function () {
+//       stopped = false;
+//       requestAnimationFrame_();
+//   });
+//   return task.run();
+// };
 createApp(App)
   .use(createPinia())
   .use(ElementPlus)

--
Gitblit v1.8.0