Javascript 手机上的摄像头控制不适用于虚拟现实

Javascript 手机上的摄像头控制不适用于虚拟现实,javascript,virtual-reality,babylonjs,Javascript,Virtual Reality,Babylonjs,使用babylondefaultVRExperience 我不明白少了什么。我已经尝试了我所能想到的一切,但我找不到任何在运动场之外有效的例子 仅需几行代码即可在巴比伦游乐场完美运行的示例: 同一代码在巴比伦以外不起作用的示例: 这里有一个例子,我在一篇文章中找到了一些关于用巴比伦制作手机虚拟现实的东西。。也不起作用: 电话:含oxygenOS 9.0.9的1+5 浏览器:Chrome版本79.0.3945.93 从字面上说,任何帮助都将不胜感激 我假设您正在使用iphone safari 故事

使用babylon
defaultVRExperience

我不明白少了什么。我已经尝试了我所能想到的一切,但我找不到任何在运动场之外有效的例子

仅需几行代码即可在巴比伦游乐场完美运行的示例:

同一代码在巴比伦以外不起作用的示例:

这里有一个例子,我在一篇文章中找到了一些关于用巴比伦制作手机虚拟现实的东西。。也不起作用:

电话:含oxygenOS 9.0.9的1+5

浏览器:Chrome版本79.0.3945.93


从字面上说,任何帮助都将不胜感激

我假设您正在使用iphone safari

故事是,苹果正准备推出一款新产品 安全/隐私设置,以防止站点能够访问 设备的加速计和陀螺仪,这意味着一些VR/AR 你在网上遇到的东西可能要等到 你明确允许这样做

为了使用虚拟现实,我们应该要求用户使用以下代码允许访问运动和方向:

function onClick() 
{
    if (typeof DeviceMotionEvent.requestPermission === 'function') 
    {
        DeviceMotionEvent.requestPermission()
        .then(permissionState => {
            if (permissionState === 'granted') 
            {
                // DeviceMotionEvent.requestPermission() has been granted
            }
        })
        .catch(console.error);
       }
}
这里是巴比伦iphone在操场外工作的虚拟现实示例


在您的手机中打开此按钮,Chrome v76和forward已删除http的
DeviceMotionEvent
,这意味着Chrome的vr加速计控件仅在使用https时有效

资料来源:

这可以通过将我的示例链接切换到https来确认,然后他们就开始在我手机上的chrome上工作


如果你想支持safari,Mudin的答案很值得一看。

你用的是什么手机?我的问题似乎是我没有使用https,如果我将示例链接更改为https,它们就会开始工作,你知道这是为什么吗?@Bobbzorzen通过http加载外部库可能会有问题。事实证明,chrome 76+中http调用的DeviceMotionEvent被删除,这意味着babylon在手机上处理摄像头控制的方式只能在https上工作。不过,感谢您的帮助,非常感谢您在这方面的一个补充说明-巴比伦已经将requestPermission调用集成到最新版本(4.1)中,该版本目前处于betaperfect中,您已经找到了