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