联网框架动态房间不能使用简单的 rtc
Posted
技术标签:
【中文标题】联网框架动态房间不能使用简单的 rtc【英文标题】:Networked aframe dynamic rooms not working with easy rtc 【发布时间】:2021-11-07 07:46:42 【问题描述】:问题
您好,我已经使用表单重新混合了网络框架动态房间的模板:
https://glitch.com/edit/#!/power-lily-pancake?path=public%2Fscene.html%3A41%3A0
由于某种原因,每当我将这些代码行添加到 <a-scene>
标记时,整个项目都会中断:
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"
我想知道是否有办法将这些代码行添加到 <a-scene>
标记中,使其看起来像这样:
<a-scene dynamic-room 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"
>
但有了它,动态房间仍然可以工作。这意味着如果两个人在不同的房间,他们将看不到对方,但如果他们在同一个房间,他们将能够看到对方。如何做到这一点?
链接
A-frame网站:https://aframe.io
联网 A 框架文档:https://www.npmjs.com/package/networked-aframe
包含我当前代码的项目:https://glitch.com/edit/#!/power-lily-pancake?path=public%2Fscene.html%3A41%3A0
【问题讨论】:
【参考方案1】:afaik dynamic-room
component 旨在附加 networked-scene
,而不是更新它 (since it doesn't handle updates)。这就是为什么dynamic-room example scene 确实只有一个dynamic-room
组件,也是为什么dynamic-room
不能与networked-scene
一起使用。
我会将所有 networked-scene
属性都放到 dynamic-room
设置中,但也可以让这两者像你想要的那样一起工作:
<a-scene dynamic-room networked-scene>
解决此问题的一种方法是使用networked-scene
的connectOnLoad
property - 让dynamic-room
更改房间,然后决定何时连接。
由于networked-scene
检查init 中的connectOnLoad
- 它将始终使用默认值。我们需要确保默认是false
而不是true
。
所以需要做两件事:
在场景初始化之前更改networked-scene
默认值:
<script>
// This is hacky, another way would be copying the component and make it react to updates
AFRAME.components["networked-scene"].schema.connectOnLoad.default = false;
</script>
<a-scene dynamic-room networked-scene>
在设置房间 ID 时发出 connect
:
// set the room id
el.setAttribute("networked-scene", "room", roomID);
// notify `networked-scene` that you're ready to connect
el.emit("connect", null, false);
查看this glitch
【讨论】:
对不起,迟到的评论。代码完美运行!我确实有一个关于从网络场景更改为动态房间的问题。我已经发布了另一个关于它的问题:***.com/questions/69306679/…。如果你想检查这个问题,那对我来说意义重大。如果没有,那当然也很好。再次感谢您的回答!以上是关于联网框架动态房间不能使用简单的 rtc的主要内容,如果未能解决你的问题,请参考以下文章
专注于嵌入式/物联网的webrtc native库metaRTC