Flipfly alarm tuning example

DEPLOYED

by morphcast

HTML

<head>
  <title>MorphCast AI HTML5 SDK - Flipfly - FACE_COMPARE video mode - demo example</title>
</head>

<body>
  <script src="https://ai-sdk.morphcast.com/dev/ai-sdk.js"></script>
  <video id="video1" muted playsinline></video>
  <div>
    <button id="toggle">Pause</button>
  </div><br />
  <div><b>DEMO.<br /><br />
  results: <div id="results">-</div>
  </b>
  </div>
</body>

JavaScript 1.7

/*
 	Creates a pre-built camera source
*/
const cameraSource = CY.createSource.fromCamera({
  constraints: {
    audio: false,
    video: {
      width: {
        min: 600,
        max: 800
      }
    }
  },
  video: document.getElementById("video1")
});

let getSDKModule;
CY.loader()
  .licenseKey('f2fddf1df7c30cac7908d10246256efd264ce7aa32ec') // key for flipfly
  .source(cameraSource)
  .addModule(CY.modules().FACE_DETECTOR.name)
  .addModule(CY.modules().FACE_COMPARE.name, {
    region: 'eu-central-1',
    identityPoolId: 'eu-central-1:8c27ebbc-a5ac-4e48-bd65-d18e1bc7c55c' // FaceCompareModule Unauth Identity
	})
  .maxInputFrameSize(640)
  .load().then(({
    start,
    stop,
    terminate,
    getModule
  }) => {
		getSDKModule = getModule;
    const toggle = document.querySelector('#toggle');
    var playing = false;
    toggle.textContent = 'START SDK';
    toggle.onclick = function() {
      if (playing) {
        stop();
        playing = false;
        toggle.textContent = 'Resume';
      } else {
        start();
        playing = true;
        toggle.textContent = 'Pause';
      }
    };
    setTimeout(() => {
      stop();
      terminate();
      console.log('terminated');
      alert('TERMINATED');
    }, 200000);
  }).catch((err) => {
    console.error(err);
  });

let lastFrame;
let framesWithFace = [];

window.addEventListener(CY.modules().FACE_DETECTOR.eventName, (evt) => {
  //console.log('Face detector result',  evt.detail);
  if(evt.detail.rects.length === 1 && framesWithFace.length < 5) {
  	framesWithFace.push(lastFrame);
    if (framesWithFace.length === 5) {
    	console.log(framesWithFace);
      getSDKModule(CY.modules().FACE_COMPARE.name)
      	.compare(framesWithFace[0], framesWithFace[4], true)
        .then((resp)=>{
        		if(resp.success) {
            	console.log('SUCCESS', resp.details.similarity);
              downloadURI(toDataURL(framesWithFace[0]), "userFace.png");
            } else {
           ...