リモート ビデオを WebGL のテクスチャに割り当てたいと考えています。ビデオ ソースはドキュメント ソースとは異なるため、ビデオ ソースAccess-Control-Allow-Origin:*
の http ヘッダーに追加しました。さらに、 を使用して、匿名のオリジンを video タグに割り当てましたvideo.crossOrigin = '';
。興味深いことに、クロスドメイン属性は画像では機能しますが、ビデオ タグでは機能しません。WebGL テクスチャがビデオ オブジェクトに割り当てられるとすぐに、javascript は次の例外をスローします。
キャッチされないエラー: SECURITY_ERR: DOM 例外 18
この問題を再現するための jsfiddle を次に示します。この例は、three.js の webgl_kinect の例に基づいています: http://jsfiddle.net/ZgeTU/2/
関連するセクションは次のとおりです。
// 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();
その後、video タグが Three.js テクスチャに割り当てられます。
texture = new THREE.Texture( video );
どうやら、webGL で crossOrigin ビデオを使用するこの問題はしばらくの間知られていますが、これに関する更新は見つかりませんでした: http://jbuckley.ca/2012/02/cross-origin-video/
この問題のステータスを知っている人はいますか? webGL でリモート ビデオにアクセスするための回避策はありますか? どんな助けでも大歓迎です!
ありがとう!