initialize method
Implementation
Future<void> initialize() async {
if (_disposed || _sessionId != null) return;
_emit(value.copyWith(state: UCameraState.initializing, clearError: true));
try {
final Map<Object?, Object?>? created = await UCameraChannel.invokeMap("create", <String, Object?>{"config": _config.toMap()});
if (created == null) throw const UCameraException(code: UCameraErrorCode.configuration, message: "Camera session was not created");
if (_disposed) {
final int? id = (created["sessionId"] as num?)?.toInt();
if (id != null) unawaited(UCameraChannel.invoke<void>("dispose", <String, Object?>{"sessionId": id}));
return;
}
final int sessionId = ((created["sessionId"] as num?) ?? 0).toInt();
_sessionId = sessionId;
_events = UCameraChannel.events(sessionId).listen(_onEvent, onError: _onStreamError);
if (_config.needsFrames) {
_frames = UCameraChannel.frames(sessionId).listen(_onFrame, onError: _onStreamError);
}
_applyCreated(created);
if (_config.scanning) await startScanning();
} on UCameraException catch (error) {
_fail(error);
}
}