s在{iOS}不推荐使用UIAccelerometer
之前,我使用了此类中x
,y
和z
的数据来计算音高,滚动和偏航。我还必须进行一些过滤,但现在我看到CoreMotion
库我可以从CMAttitude
class获取这些数据并且真的想使用这些属性,但不知何故我没有这样做。
现在,我所做的是实例化
CMMotionManager *motionManager;
CMDeviceMotion *deviceMotion;
CMAttitude *attitude;
...
deviceMotion = motionManager.deviceMotion;
attitude = deviceMotion.attitude;
motionManager.accelerometerUpdateInterval = 0.065; // 65ms
[motionManager startAccelerometerUpdates];
我能够从motionManager.accelerometerData.acceleration.<x,y or z>
读取x,y和z但是尝试从attitude.<roll,pitch,yaw>
读取给我0。
NSLog(@"Roll: %f", attitude.roll); // = 0
我读出了每100毫秒由连续计时器触发的方法中的值。
关于我缺少什么的任何想法?
答案 0 :(得分:0)
要使用deviceMotion.attitude
,您必须致电[motionManager startDeviceMotionUpdates]
。
startAccelerometerUpdates
仅提供加速计数据,startGyroUpdates
会为您提供gyroData
。请注意,设备运动数据不仅仅是加速度计和陀螺仪数据,因为它们将被组合(传感器融合)以实现更高的精度。