absoluteOrientation method
Stream<AbsoluteOrientationEvent>
absoluteOrientation({
- Duration samplingPeriod = SensorInterval.normalInterval,
Implementation
Stream<AbsoluteOrientationEvent> absoluteOrientation({
Duration samplingPeriod = SensorInterval.normalInterval,
}){
if (_absoluteOrientationStreamController == null) {
_absoluteOrientationStreamController = StreamController<AbsoluteOrientationEvent>();
_featureDetected(
() {
final absoluteOrientation = AbsoluteOrientationSensor(
SensorOptions(
frequency: samplingPeriod.frequency,
),
);
absoluteOrientation.start();
absoluteOrientation.onreading = (Event _) {
final q = absoluteOrientation.quant.toDart;
_absoluteOrientationStreamController!.add(
AbsoluteOrientationEvent(
q[0] as double,
q[1] as double,
q[2] as double,
),
);
}.toJS;
absoluteOrientation.onerror = (SensorErrorEvent e) {
developer.log(
'The absoluteOrientation API is supported but something is wrong!',
error: e.error.message,
);
}.toJS;
},
apiName: 'AbsoluteOrientationSensor()',
permissionName: 'accelerometer',
onError: () {
_absoluteOrientationStreamController!.add(AbsoluteOrientationEvent(0, 0, 0));
},
);
_absoluteOrientationResultStream =
_absoluteOrientationStreamController!.stream.asBroadcastStream();
_absoluteOrientationStreamController!.onCancel = () {
_absoluteOrientationStreamController!.close();
};
}
return _absoluteOrientationResultStream;
}