Я хотел бы назначить удаленное видео текстуре в WebGL. Поскольку источник видео отличается от источника документа, я добавил Access-Control-Allow-Origin:*
в заголовки http источника видео. Кроме того, я назначил анонимное происхождение видеотеку с помощью video.crossOrigin = '';
. Интересно, что атрибут кросс-домена работает с изображениями, но НЕ с тегом видео. Как только текстуру WebGL присваивается видеообъекту, javascript генерирует следующее исключение:
Непринятая ошибка: SECURITY_ERR: исключение DOM 18
Вот вам jsfiddle, чтобы воспроизвести эту проблему. Этот пример основан на примере webgl_kinect из файла three.js: 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();
Затем тег видео привязан к тексту Three.js:
texture = new THREE.Texture( video );
По-видимому, эта проблема с использованием видеоролика crossOrigin в webGL известна некоторое время, но я не нашел никаких обновлений: http://jbuckley.ca/2012/02/cross-origin-video/
Кто-нибудь знает, каков статус этой проблемы? Есть ли способ обхода доступа к удаленным видео в webGL? Любая помощь очень ценится!
Спасибо!