brownhci / WebGazer

WebGazer.js: Scalable Webcam EyeTracking Using User Interactions
https://webgazer.cs.brown.edu
Other
3.54k stars 536 forks source link

showVideo() causing loss of tracking when switched repeatedly on Firefox v116 #315

Closed DavidKnight247 closed 5 months ago

DavidKnight247 commented 1 year ago

My application detects if the participant is centred, and shows the video stream only if they are not within the bounding box. If webgazer starts with the participant outside the bounding box, then enters and leaves the bounding box, tracking appears to stop in Firefox v116, but not in Chrome v115 where the expected behaviour is observed. As a workaround, I changed the opacity of the canvas (see code snippet). image

bbonf commented 5 months ago

Hi, I'm experiencing that issue as well. Seems like it's the same as #252 Since the opacity based workaround is already built-in for Safari, maybe that could become the default.

jeffhuang commented 5 months ago

@bbonf or @DavidKnight247 could you check if this branch https://github.com/brownhci/WebGazer/tree/hideVideoElement-fix fixes the issue, without your workaround being needed?

bbonf commented 5 months ago

@jeffhuang thanks for the quick fix!

This does solve the issue for me on Firefox. However, I get noticeably degraded performance compared to what I currently use.

Regrettably, what I currently use is a bit of a mess (https://github.com/UiL-OTS-labs/WebGazer) . It's based on jsPsych's fork of WebGazer (https://github.com/jspsych/WebGazer) but with changes merged from WebGazer 3.0.0 I'll try to see if I can figure out the relevant changes, but I'd appreciate any clues you might have.