Estoy creando un proyecto usando A-frame ( https://aframe.io ) y el componente A-frame en red ( https://www.npmjs.com/package/networked-aframe )
(proyecto en: https://glitch.com/edit/#!/networkedtest?path=public%2Fscene.html%3A44%3A0 )
y me encontré con un problema con la transmisión de video. Actualmente en mi proyecto, la transmisión de video funciona perfectamente bien, pero cada vez que cambio esta línea de código en scene.html en la línea 202:
<a-scene moving-sun vr-mode-ui="enabled: false;" physics networked-scene=" room: audio; adapter: easyrtc; audio: true; video: true; debug: true; inspector=https://cdn.jsdelivr.net/gh/aframevr/aframe-inspector@master/dist/aframe-inspector.min.js">Con este código:
<a-scene moving-sun vr-mode-ui="enabled: false;" physics dynamic-room=" room: audio; adapter: easyrtc; audio: true; video: true; debug: true; inspector=https://cdn.jsdelivr.net/gh/aframevr/aframe-inspector@master/dist/aframe-inspector.min.js"> Si pruebo mi código levantando dos pestañas, donde debería estar la transmisión de video, solo hay un plano blanco en blanco. No estoy seguro de por qué, pero cada vez que cambio la parte de la línea networked-scene="" con dynamic-room="" el video deja de funcionar y cuando te unes a otra pestaña, todo lo que ves es una pantalla blanca donde la alimentación de vídeo debe ser.
No estoy seguro networked-scene para dynamic-room . Intenté corregir este error modificando un código, pero aún no puedo encontrar una respuesta a este problema. Tengo la sensación de que el problema está en algún lugar de public/js/dynamic-room.component.js pero puedo estar equivocado.
Si sabe cómo resolver este problema, la ayuda sería muy apreciada.
Enlace a mi proyecto: https://glitch.com/edit/#!/networkedtest?path=public%2Fscene.html%3A44%3A0
Esta es una continuación de esta pregunta .
Su dynamic-room solo establece la identificación de la sala y emite connect para que la networked-scene intente conectarse al servidor:
// public/js/dynamic-room.component.js // Setup networked-scene var networkedComp = { room: params.room }; // set the room el.setAttribute("networked-scene", networkedComp); // emit connect el.emit("connect", null, false); en este caso, no es una alternativa a networked-scene , trabajan juntos. Si desactiva la conexión automática antes de la escena:
<script> AFRAME.components["networked-scene"].schema.connectOnLoad.default = false; </script> <a-scene dynamic-room networked-scene>El video aparece como se esperaba ( falla aquí )
Si desea que la dynamic-room realice toda la configuración que se encuentra en la networked-scene , entonces la respuesta de Michaels también es correcta.
Estás en el camino correcto.
Supongo que desea usar la sala dinámica para cargar un nombre de sala personalizado desde la URL. (Para eso es todo. Si eso no es lo que quiere, entonces la sala dinámica no es lo que está buscando).
El ejemplo de sala dinámica lee la URL, luego crea el componente de "escena en red" para usted y lo adjunta a su etiqueta.
Es un ejemplo antiguo, escrito antes del soporte de video, por lo que no verifica video: true :
var isMultiuser = params.hasOwnProperty('room'); var webrtc = params.hasOwnProperty('webrtc'); var adapter = webrtc ? 'easyrtc' : 'wseasyrtc'; var voice = params.hasOwnProperty('voice'); var networkedComp = { room: params.room, adapter: adapter, audio: voice //<--Only setting the audio property here }; console.info('Init networked-aframe with settings:', networkedComp); el.setAttribute('networked-scene', networkedComp); Recomiendo copiar sus parámetros en dynamic-room.component.js (en la línea 18).
Solo el nombre de la habitación se cargará desde la URL. (Y por defecto será 'audio' si no se especifica, al igual que su parámetro de escena en red).
var roomNameFromURL = params.hasOwnProperty('room'); //We won't check for these: //var webrtc = params.hasOwnProperty('webrtc'); //var adapter = webrtc ? 'easyrtc' : 'wseasyrtc'; //var voice = params.hasOwnProperty('voice'); var networkedComp = { //if there is no name in the URL, default to 'audio', // like your networked-scene room: roomNameFromURL ? params.room : 'audio', adapter: 'easyrtc', audio: true, video: true, debug: true }; console.info('Init networked-aframe with settings:', networkedComp); el.setAttribute('networked-scene', networkedComp);