不同的陀螺仪值在chrome移动和safari移动
Different gyroscope values in chrome mobile and safari mobile
我目前正在构建一个小型全景照片查看器,它可以选择使用陀螺仪导航场景。我正在从deviceOrientation事件中获取数据,并将欧拉角转换为旋转矩阵,然后通过一些转换,最终使用3dMatrix转换移动css立方体。
我的问题是,我得到非常不同的数据来自deviceOrientation事件在不同的浏览器在不同的设备,我不明白为什么。
在我试用过的几乎所有iPhone上,无论是safari移动版还是Chrome,一切都运行得很好。游戏的价值体现得很有意义,整个体验是无缝的。
在使用Chrome浏览器的三星Galaxy S3上,我的数据完全不稳定。alpha值实际上似乎并不代表绕z轴旋转,并且值有巨大的跳跃,例如beta仅用很小的运动就从50-130度跳跃。
在Chrome的Galaxy Tab S 8.4"上,我仍然得到一些不稳定的值,有一些来回抖动,但我至少得到了一些接近预期的行为。
在Nexus 7第二代上,在Chrome上,体验是连贯的,有意义的。与iPhone相比,它的渲染是不稳定的,但它正确地旋转了所有内容,并且值是有意义的。
有谁知道我如何能够解决这些问题,或者我应该如何解决它们?这可能是三星移植的安卓系统的问题,或者是最新版本的安卓系统本身的问题。
想法吗?想法吗?建议吗?在这一点上我真的迷路了。
谢谢!
你可以在这里找到JS事件的细节:
http://dorukeker.com/know-thy-gyroscope-and-js-part-i/
http://dorukeker.com/know-thy-gyroscope-and-js-part-ii/ 下面是我准备处理这些差异的JS文件:
https://github.com/dorukeker/gyronorm.js
更新:我刚刚更新了GitHub上的gyronorm.js。现在有一些函数可以告诉您某个变量在设备/浏览器组合上是否可用。查看GitHub页面下载和如何使用。
我希望这些有帮助。享受吧!
我发现(在过去使用设备方向时,不确定这是否已经改变)android上的一个轴值与iOS值相反。我必须为设备方向创建一个包装器方法,它将反转android并应用一些模糊的乘数来获得可比较的值,但android手机之间的灵敏度会有所不同,所以你必须找到一些可接受的中间地带。
- 如何将chrome扩展功能移植到移动设备(特别是jquery和trello)
- XMLHttpRequest在移动设备上的chrome上不起作用
- 移动Chrome和Safari之间的页面滚动不一致
- Chrome扩展:将下载的文件移动到输入字段
- jQuery:jQuery.val()在移动Safari和Chrome中不起作用
- 如何防止下拉刷新移动chrome
- 触摸事件因 Chrome 移动模拟器中的 ReactJS 升级而中断
- 砌体在移动浏览器(chrome)上不起作用,并且仅在Chrome桌面版本上有效,如果我重新加载(ctrl + f5)页面
- Chrome 扩展程序与移动设备之间通过本地网络进行安全通信
- 移动版 Chrome 上的 IFrame 播放器 API
- 如何在chrome浏览器中的输入字段中使用只读属性时启用光标移动
- Chrome 会在我移动窗口时隐藏我的窗口
- Chrome.extension API 在移动版 Chrome 上是否可用
- Bootstrap 3提交按钮不在Android移动Chrome浏览器中工作
- 如何在桌面和移动Chrome用户代理之间进行检测
- 背景大小:覆盖导致背景图像在移动Chrome触摸调整大小
- 如何打开移动chrome浏览器与javascript或html
- HTML5通知不工作在移动Chrome
- 隐藏移动Chrome上的键盘;t改变车窗高度
- 套接字.Emit在移动chrome中不工作(但它在隐身模式下工作)