2016-04-26 7 views
1

Ist es möglich, YouTube-Videos ohne CSS3DRenderer in three.js einzubetten? Ich benutze Pappe-Effekt, also wird CSS3DRenderer hier nicht funktionieren.Einbetten von YouTube-Videos ohne CSS3DRenderer in three.js

Hier ist der Code, den ich bisher verwendet habe. Aber im gegenüberliegende Domain-Problem

video = document.createElement('video'); 
video.autoplay = true; 
video.src = 'http://myurl.com/videos/video.mp4'; 
newcanvas = document.createElement('canvas'); 
context = newcanvas.getContext('2d'); 
videoTexture = new THREE.Texture(newcanvas); 
..... 

In Animate-Funktion habe ich den folgenden Code verwendet.

Antwort

1

Zuerst müssen Sie Ihr Youtube-Video in ein HTML-Video-Tag einbetten. Wenn Sie im Internet schauen, finden Sie viele Möglichkeiten, dies zu tun. Dies kann nützlich für Sie sein: YouTube URL in Video Tag

Nach dieser Arbeit müssen Sie es in eine THREE.Texture konvertieren, so dass Sie es auf ein Netz zuordnen und WebGL Renderer verwenden können. Es gibt eine Three.js Erweiterung für diese: threex.videotexture

+0

Ich übergebe einfach die Cross-Domain-URL ('http://myurl.com/img/videos/sample.mp4') in Threx.Videotexture. Aber das Video wird nicht abgespielt. –

+0

Hier ist der Code, den ich bisher geändert habe. –

+0

Hier ist der Code, den ich bisher geändert habe. var canPlayMp4 \t = document.createElement ('Video'); \t var url \t = "http://myurl.com/img/videos/sample.mp4"; \t var videoTexture = neu THREEx.VideoTexture (url) \t video \t = videoTexture.video; \t video.setAttribute ('crossorigin', ''); \t videoTexture.texture.minFilter = THREE.LinearFilter; \t videoTexture.texture.magFilter = THREE.LinearFilter; \t updateFcts.push (function (delta, jetzt) ​​{ \t \t videoTexture.update (delta, jetzt) ​​ \t}) –