【问题标题】:Disable Gyroscope/Device Orientation reading in VRView for web在 VRView for web 中禁用陀螺仪/设备方向读取
【发布时间】:2020-05-06 01:13:28
【问题描述】:

我有一个用于虚拟房屋游览的网络应用程序。目前我正在使用 VRView 进行这些旅行,效果很好,但是我遇到了陀螺仪的问题,我需要尽快修复。

VRView 将根据用户设备方向自动旋转相机。当用户转动手机时,虚拟房屋游览也会转动,因此用户可以“环顾”房屋。这对于大多数用例来说非常有用,但是低端设备在处理此类更改时会出现问题。我需要一种方法让用户禁用自动旋转,只需在手机上滑动即可环顾四周。

我尝试了权限 api 并试图撤销对陀螺仪的访问,但由于浏览器与该 api 的兼容性,它不起作用。我在 VRView 库中也找不到任何相关文档。非常感谢任何帮助。

【问题讨论】:

    标签: javascript html webvr


    【解决方案1】:

    tldr;

    您是对的,这似乎无法通过他们的 API 获得。看起来您可能需要分叉库并进行一些调整。如果你想走这条路,我建议分叉回购,看看你是否可以成功禁用运动发射器,然后看看你是否可以使用 webvr-polyfill 来启动拖动控制。也可以直接通过 webvr-polyfill 禁用基于陀螺仪的旋转。

    更深入的解释:

    运动信息正在两个位置发布到 VR View iframe(我相信然后将它们提供给 webvr-polyfill 控件): https://github.com/googlearchive/vrview/blob/bd12336b97eccd4adc9e877971c1a7da56df7d69/scripts/js/device-motion-sender.js#L35 https://github.com/googlearchive/vrview/blob/bd12336b97eccd4adc9e877971c1a7da56df7d69/src/api/iframe-message-sender.js#L45

    当浏览器的 UA(用户代理)标志表明它不能使用陀螺仪控件时,您需要在其中包含一个标志来禁用此功能(或禁用 iframe 中的侦听器)。

    通常,要启用拖动旋转,我认为您需要为拖动事件的开始和结束编写一个侦听器,将这些事件转换为相机旋转。 (类似于此人的建议:https://github.com/googlearchive/vrview/issues/131#issuecomment-289522607

    但是,这些控件似乎是通过 web-vr-polyfill 导入的。 'window.WebVRConfig' 对象来自 web-vr-polyfill,如果我正确地遵循了这一点。 见这里:https://github.com/googlearchive/vrview/blob/bd12336b97eccd4adc9e877971c1a7da56df7d69/src/embed/main.js#L77

    上面的代码看起来像 VR View 在检测到某个标志时正在调整 WebVRConfig(在本例中为“YAW_ONLY”属性)。我相信你必须做类似的事情。

    https://github.com/immersive-web/webvr-polyfill

    有关 YAW_ONLY 属性的信息,请参见此处:https://github.com/immersive-web/webvr-polyfill/blob/e2958490653bfcda4df83881d554bcdb641cf45b/src/webvr-polyfill.js#L68

    请参阅此处以获取在 webvr-polyfill 中调整控件的示例: https://github.com/immersive-web/webvr-polyfill#using

    【讨论】:

    • 这是一些很棒的信息!我会看看其中的一些,看看我是否能找到一些解决方法。谢谢你的这些。我希望不必分叉它,只需添加一个 JavaScript 脚本,但看起来可能没那么简单。
    • 太棒了,告诉我进展如何!
    猜你喜欢
    • 1970-01-01
    • 2012-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 2016-02-23
    相关资源
    最近更新 更多