使用WebRTC和WebVR进行VR视频通话( 二 )


如你所见,当链接被调用时,它将会创建一个新的视频元素并赋予其宽度和高度属性,将它添加到3D环境中 。
【使用WebRTC和WebVR进行VR视频通话】AttachNow函数是real magic发生的地方,我修改了Verto库,当一个session被建立时,调用一个叫attachNow的函数 。默认情况下,Verto库使用jQuery形式的标签来初始化,并向标签中添加或移出媒体 。我需要一个流来自己管理,这样就可以向以上我展示的空对象中加入video标签 。这就可以使A-Frame实现它的逻辑—获取数据并加载到3D环境中a-video标签中一个canvas 。
我还向vertoService.js里添加了一个函数:
function updateVideoRes() {data.conf.modCommand('vid-res', (unmutedMembers * 1280) + 'x720');attachNow();document.getElementsByTagName('a-video')[0].setAttribute('width', unmutedMembers*16);}UpdateVideoRes被设计成改变FreeSWITCH的Verto会议的输出分辨率 。当用户加入会议时,我们想在3D环境下创建一个更长的视频展示 。必要的,每次有新成员加入时,我们将输出延长,这样用户就可以在每一端看到其他用户 。
视觉
这是最终结果,一个VR环境,包括我和Simon Woodhead 。

使用WebRTC和WebVR进行VR视频通话

文章插图
 
关于WebVR有一点很不错,为了让它全部工作,你不需要具有VR耳机,你只需要点击按钮,就可以得到全屏的VR体验,就像你带了一个VR耳机一样 。你可以查看YouTube上的视频.
我们学到了什么?
这个演示只有一半起到了效果,最大的收获就是即使只有一半演示有效,这也是一个观看视频会议不错的方式 。对于VR观看者来说,当他们使用耳机观看时,将他们加入流中不是一个可行的方案 。可能这就是为什么微软的HoloLens要使用混合现实优化它的原因 。
所有代码:
代码可以在bitbucket上找到 。




推荐阅读