我一直在尝试使用sensors包来实现陀螺仪图像查看器,但是结果似乎很滞后。我在YouTube上找到了一个类似的项目,该项目正在试图实现类似的目标,但是正如您在视频中看到的那样,动画效果也很落后。
下面的代码只是从事件中输出数据,我注意到在两次更新之间如何更新数据会滞后于50ms。
有没有一种方法可以使动画平滑或更快地更新数据?还是这是Flutter的限制?
注意: 我尝试了其他帖子建议的--release版本,但结果保持不变。
import 'package:sensors/sensors.dart';
class MyGyro extends StatefulWidget {
final Widget child;
MyGyro({this.child});
@override
_MyGyroState createState() => _MyGyroState();
}
class _MyGyroState extends State<MyGyro> {
double gyroX = 0;
double gyroY = 0;
@override
void initState() {
super.initState();
gyroscopeEvents.listen((GyroscopeEvent event) {
setState(() {
gyroX = ((event.x * 100).round() / 100).clamp(-1.0, 1.0) * -1;
gyroY = ((event.y * 100).round() / 100).clamp(-1.0, 1.0);
});
});
}
@override
Widget build(BuildContext context) {
return Container(
height: 100,
width: 100,
child: Transform.translate(
offset: Offset(gyroY, 0),
child: Container(
child: Center(
child: Column(
children: [Text("X: ${gyroX}"), Text("Y: ${gyroY}"),],
),
),
),
),
);
}
}
答案 0 :(得分:2)
我发现这纯粹是我使用的sensors包的问题,或者它们在侦听传感器事件时已经硬编码了一个较慢的间隔,或者它们只是在IOS通道中使用了默认间隔
因此,我找到了另一个名为flutter_sensors的软件包,该软件包已解决了该问题。这是访问传感器事件的非常简单的API,但是它允许您更改时间间隔。