chrome mobile和safari mobile中的不同陀螺仪值

Oct*_*rpe 5 javascript html5 android google-chrome device-orientation

我目前正在构建一个小型全景照片查看器,可以选择使用陀螺仪导航场景.我从时deviceOrientation事件获取数据并转动欧拉角成旋转矩阵,然后将通过一些转换,最终移动CSS立方体,3dMatrix变换.

我的问题是我在不同设备上的不同浏览器上从deviceOrientation事件中获得了非常不同的数据,我不明白为什么.

在我尝试的几乎所有iPhone上,使用safari mobile和Chrome,一切都很棒.价值观进入并且有意义,整个体验非常无缝.

在三星Galaxy S3上,在Chrome中,我的数据完全不稳定.alpha值实际上似乎并不代表围绕z轴的旋转,并且值有巨大的飞跃,例如beta跳跃从50-130度只有一个小的运动.

在Chrome中的Galaxy Tab S 8.4"中,我仍然会得到一些不稳定的值,有些来回抽搐,但我至少得到了一些近似于所需行为的东西.

在Chrome上的Nexus 7 2nd gen上,体验是连贯的,也是有意义的.与iPhone相比,它的渲染速度不稳定,但它正在正确地旋转所有内容,并且这些值很有意义.

有谁知道我怎么能解决这些问题,或者我应该如何解决这些问题?它们可能是Android的三星端口的问题,或者在最新版本的操作系统中的Android本身.

思考?想法?建议?我此时真的很失落.

谢谢!

小智 0

我发现(过去在处理设备方向时,不确定这是否已经改变)Android 上的轴值之一与 iOS 值相反。我必须为 deviceorientation 创建一个包装方法,该方法将反转 android 并应用一些模糊的乘数来使值具有可比性,但 android 手机之间的敏感度会有所不同,因此您将不得不找到一些可接受的中间立场。