Salve a tutti, questo è il mio primo post 
Ho scaricato un codice JS che visualizza lo stream video della webcam ed implementa un algoritmo di computer vision per il face detection.
Provando questo codice con diversi browser:
- con chrome (anche la versione canary) tutto funziona alla perfezione
- con.... tutti gli altri (firefox, safari, IE) ho alcuni problemi....
comportamento con IE e con Safari:
Non viene chiesto l'accesso alla webcam e viene scatenato l'evento "error" implementato in questo modo
var App = { ...
...
error: function(e) {
if (e) {
console.error(e);
}
App.info.innerHTML = 'Please enable the "MediaStream" flag (for Google Chrome go to about:flags).';
},
... }
ma non so come si abilita in IE/Safari questo flag.
comportamento con Firefox:
mi viene generato un errore di tipo "Not enough arguments to EventTarget.removeEventListener" ... il codice è il seguente
var App = {
start: function(stream) {
App.video.addEventListener('canplay', function() {
App.video.removeEventListener('canplay');
setTimeout(function() {
App.video.play();
App.canvas.style.display = 'inline';
....
....
effettivamente nella documentazione che ho trovato l'evento removeEventListener richiederebbe almeno un altro argomento ovvero il listener, ma allora perché su chrome funziona?...ho provato anche ad inserire "function(){}" come secondo parametro di removeEventListener ma mi genera altri errori più avanti.... inoltre mi sembra un po' contorto il fatto che venga fatto il remove "dentro" l' add dello stesso listener.... mi piacerebbe se qualcuno riuscisse a spiegarmelo anche in maniera sommaria....
grazie a tutti quelli che risponderanno!

Ho scaricato un codice JS che visualizza lo stream video della webcam ed implementa un algoritmo di computer vision per il face detection.
Provando questo codice con diversi browser:
- con chrome (anche la versione canary) tutto funziona alla perfezione
- con.... tutti gli altri (firefox, safari, IE) ho alcuni problemi....
comportamento con IE e con Safari:
Non viene chiesto l'accesso alla webcam e viene scatenato l'evento "error" implementato in questo modo
var App = { ...
...
error: function(e) {
if (e) {
console.error(e);
}
App.info.innerHTML = 'Please enable the "MediaStream" flag (for Google Chrome go to about:flags).';
},
... }
ma non so come si abilita in IE/Safari questo flag.
comportamento con Firefox:
mi viene generato un errore di tipo "Not enough arguments to EventTarget.removeEventListener" ... il codice è il seguente
var App = {
start: function(stream) {
App.video.addEventListener('canplay', function() {
App.video.removeEventListener('canplay');
setTimeout(function() {
App.video.play();
App.canvas.style.display = 'inline';
....
....
effettivamente nella documentazione che ho trovato l'evento removeEventListener richiederebbe almeno un altro argomento ovvero il listener, ma allora perché su chrome funziona?...ho provato anche ad inserire "function(){}" come secondo parametro di removeEventListener ma mi genera altri errori più avanti.... inoltre mi sembra un po' contorto il fatto che venga fatto il remove "dentro" l' add dello stesso listener.... mi piacerebbe se qualcuno riuscisse a spiegarmelo anche in maniera sommaria....
grazie a tutti quelli che risponderanno!