Vorrei assegnare un video remoto a una trama in WebGL. Poiché la sorgente video è diversa dalla fonte del documento, ho aggiunto Access-Control-Allow-Origin:*
alle intestazioni http della sorgente video. Inoltre, ho assegnato un'origine anonima al tag video utilizzando video.crossOrigin = '';
. È interessante notare che l'attributo cross-domain funziona con le immagini, ma NON con il tag video. Non appena la texture WebGL viene assegnato all'oggetto video, javascript genera la seguente eccezione:Errore di sicurezza CORS/cross domain durante l'assegnazione del tag video HTML5 alla trama WebGL
Uncaught Errore: SECURITY_ERR: DOM Exception 18
Ecco un jsfiddle per riprodurre il problema. Questo esempio si basa sull'esempio webgl_kinect di Three.js: http://jsfiddle.net/ZgeTU/2/
Qui ci sono sezioni rilevanti:
// CROSS-ORIGIN VIDEO SOURCE
// REMOTE VIDEO SOURCE PROVIDES "Access-Control-Allow-Origin:*" HEADER
video.src =
'http://kammerl.de/threejs/three.js/examples/textures/kinect.webm';
// DEFINING ANONYMOUS ORIGIN
video.crossOrigin = '';
video.play();
In seguito il tag video è assegnato ad una texture Three.js:
texture = new THREE.Texture(video);
Apparentemente questo problema utilizzando un video crossOrigin in webGL è noto per un po ', ma non ho trovato alcun aggiornamento su questo: http://jbuckley.ca/2012/02/cross-origin-video/
Qualcuno sa qual è lo stato di questo problema? C'è qualche soluzione alternativa per accedere ai video remoti in webGL? Qualsiasi aiuto è molto apprezzato!
Grazie!
Esempio di test e il video * carica * bene su Chrome e posso visualizzarlo se lo aggiungo al DOM, anche se non vedo errori di sicurezza sto vedendo "Errore nel creare il contesto WebGL". – jpillora
@Jamo - Hai passato il JSFiddle? Quale versione di Chrome stai usando (e OS)? – baalexander
Puoi accedere a questo tramite https? – chadpeppers