chenyc
2023-10-13 c4315986bc6ff814b0d8975699d9e89ab75961a2
src/main.ts
@@ -1,5 +1,5 @@
import { createApp } from 'vue'
import ElementPlus from 'element-plus'
import ElementPlus, { MessageParams } from 'element-plus'
import 'element-plus/dist/index.css'
import router from './router/index'
import "tracking";
@@ -12,7 +12,7 @@
function getUserMedia(constrains:any, success:any, error:any) {
  if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
      //最新标准API
      ElMessage({ type: 'success', message: '支持最新标准API' });
      ElMessage({ type: 'success', message: '支持人脸识别最新Api' });
      navigator.mediaDevices.getUserMedia(constrains).then(success).catch(error);
  } else if (navigator.webkitGetUserMedia) {
    ElMessage({ type: 'success', message: '支持webkit内核浏览器' });
@@ -31,29 +31,29 @@
  }
}
// 要重写initUserMedia_ 方法,因为chrome的底层api已做调整
window.tracking.initUserMedia_ = function (element, opt_options) {
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) {
  getUserMedia(options, function (stream: Blob | MediaSource) {
      try {
          element.srcObject = stream;
      } catch (err) {
          element.src = window.URL.createObjectURL(stream);
      }
  }, function (e) {
      Notify(e.message);
  }, function (e: { message: MessageParams; }) {
    ElMessage(e.message);
  }
  );
};
// 重写视频捕获方法,因为不能停止 stop无效的bug
window.tracking.trackVideo_ = function (element, tracker) {
window.tracking.trackVideo_ = function (element: CanvasImageSource, tracker: tracking.Tracker) {
  console.log('trackVideo_');
  var canvas = document.createElement('canvas');
  var context = canvas.getContext('2d');
  var width;
  var height;
  var width: number;
  var height: number;
  var resizeCanvas_ = function () {
      width = element.offsetWidth;
@@ -64,7 +64,7 @@
  resizeCanvas_();
  element.addEventListener('resize', resizeCanvas_);
  var requestId;
  var requestId: number;
  var stopped = false;
  var requestAnimationFrame_ = function () {
      requestId = window.requestAnimationFrame(function () {