Skip to content

Commit 90a2e7b

Browse files
committed
updating code
1 parent 0ce41eb commit 90a2e7b

File tree

7 files changed

+30
-34
lines changed

7 files changed

+30
-34
lines changed

example/lib/main.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,12 @@ class _MyHomePageState extends State<_MyHomePage> {
2323

2424
void _initializeCamera() async {
2525
List<FirebaseCameraDescription> cameras = await camerasAvailable();
26-
_vision = FirebaseVision(cameras[0], ResolutionSetting.high);
26+
_vision = FirebaseVision(cameras[0], ResolutionSetting.low);
2727
_vision.initialize().then((_) {
2828
if (!mounted) {
2929
return;
3030
}
31-
_vision.addBarcodeDetector().forEach((action) => print(action));
31+
_vision.addBarcodeDetector();
3232
setState(() {});
3333
});
3434
}

ios/Classes/BarcodeDetector.m

+5-2
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,11 @@ - (void)handleDetection:(FIRVisionImage *)image result:(FlutterEventSink)result
2828
for (FIRVisionBarcode *barcode in barcodes) {
2929
[ret addObject:visionBarcodeToDictionary(barcode)];
3030
}
31-
result(ret);
32-
}];
31+
result(@{
32+
@"eventType" : @"detection",
33+
@"data":ret
34+
});
35+
}];
3336
}
3437

3538
NSDictionary *visionBarcodeToDictionary(FIRVisionBarcode *barcode) {

ios/Classes/FirebaseMlVisionPlugin.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
#import "Firebase/Firebase.h"
44

5-
@interface FLTFirebaseMlVisionPlugin : NSObject <FlutterPlugin, FlutterStreamHandler>
5+
@interface FLTFirebaseMlVisionPlugin : NSObject <FlutterPlugin>
66
+ (void)handleError:(NSError *)error result:(FlutterResult)result;
77
@end
88

ios/Classes/FirebaseMlVisionPlugin.m

+2-15
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ @interface FirebaseCam : NSObject <FlutterTexture,
1717
@property(readonly, nonatomic) int64_t textureId;
1818
@property(nonatomic, copy) void (^onFrameAvailable)();
1919
@property(nonatomic) id<Detector> activeDetector;
20-
@property(nonatomic) FlutterEventSink resultSink;
2120
@property(nonatomic) FlutterEventChannel *eventChannel;
2221
@property(nonatomic) FlutterEventSink eventSink;
2322
@property(readonly, nonatomic) AVCaptureSession *captureSession;
@@ -152,7 +151,8 @@ - (void)captureOutput:(AVCaptureOutput *)output
152151

153152
metadata.orientation = visionOrientation;
154153
visionImage.metadata = metadata;
155-
[_activeDetector handleDetection:visionImage result:_resultSink];
154+
[_activeDetector handleDetection:visionImage result:_eventSink];
155+
_isRecognizing = NO;
156156
}
157157
CFRetain(newBuffer);
158158
CVPixelBufferRef old = _latestPixelBuffer;
@@ -223,22 +223,19 @@ @implementation FLTFirebaseMlVisionPlugin {
223223
}
224224

225225
static NSMutableDictionary<NSNumber *, id<Detector>> *detectors;
226-
FlutterEventSink resultSink;
227226

228227
+ (void)handleError:(NSError *)error result:(FlutterResult)result {
229228
result(getFlutterError(error));
230229
}
231230

232231
+ (void)registerWithRegistrar:(NSObject<FlutterPluginRegistrar> *)registrar {
233232
detectors = [NSMutableDictionary new];
234-
FlutterEventChannel *results = [FlutterEventChannel eventChannelWithName:@"plugins.flutter.io/firebase_mlvision_results" binaryMessenger:[registrar messenger]];
235233
FlutterMethodChannel *channel =
236234
[FlutterMethodChannel methodChannelWithName:@"plugins.flutter.io/firebase_mlvision"
237235
binaryMessenger:[registrar messenger]];
238236
FLTFirebaseMlVisionPlugin *instance = [[FLTFirebaseMlVisionPlugin alloc] initWithRegistry:[registrar textures]
239237
messenger:[registrar messenger]];
240238
[registrar addMethodCallDelegate:instance channel:channel];
241-
[results setStreamHandler:instance];
242239

243240
SEL sel = NSSelectorFromString(@"registerLibrary:withVersion:");
244241
if ([FIRApp respondsToSelector:sel]) {
@@ -544,14 +541,4 @@ + (void)addDetector:(NSNumber *)handle detector:(id<Detector>)detector {
544541
detectors[handle] = detector;
545542
}
546543

547-
- (FlutterError * _Nullable)onCancelWithArguments:(id _Nullable)arguments {
548-
resultSink = nil;
549-
return nil;
550-
}
551-
552-
- (FlutterError * _Nullable)onListenWithArguments:(id _Nullable)arguments eventSink:(nonnull FlutterEventSink)events {
553-
resultSink = events;
554-
return nil;
555-
}
556-
557544
@end

lib/src/barcode_detector.dart

+5-2
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ class BarcodeDetector {
196196
assert(!_isClosed);
197197

198198
_hasBeenOpened = true;
199-
Stream<dynamic> data = Stream.empty();
199+
Stream<Barcode> data = Stream.empty();
200200
FirebaseVision.channel.invokeListMethod<dynamic>(
201201
'BarcodeDetector#startDetection',
202202
<String, dynamic>{
@@ -207,7 +207,10 @@ class BarcodeDetector {
207207
},
208208
).then((onValue){
209209
const EventChannel resultsChannel = EventChannel('plugins.flutter.io/firebase_mlvision_results');
210-
data = resultsChannel.receiveBroadcastStream().map((convert) => Barcode._(convert));
210+
data = resultsChannel.receiveBroadcastStream().map((convert){
211+
print(convert);
212+
return Barcode._(convert);
213+
});
211214
});
212215
return data;
213216
}

lib/src/firebase_vision.dart

+3
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,9 @@ class FirebaseVision extends ValueNotifier<FirebaseCameraValue> {
256256
}
257257

258258
switch (map['eventType']) {
259+
case 'detection':
260+
// print(event['data']);
261+
break;
259262
case 'error':
260263
value = value.copyWith(errorDescription: event['errorDescription']);
261264
break;

pubspec.lock

+12-12
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ packages:
77
name: analyzer
88
url: "https://pub.dartlang.org"
99
source: hosted
10-
version: "0.36.3"
10+
version: "0.36.4"
1111
args:
1212
dependency: transitive
1313
description:
1414
name: args
1515
url: "https://pub.dartlang.org"
1616
source: hosted
17-
version: "1.5.1"
17+
version: "1.5.2"
1818
async:
1919
dependency: transitive
2020
description:
@@ -70,7 +70,7 @@ packages:
7070
name: csslib
7171
url: "https://pub.dartlang.org"
7272
source: hosted
73-
version: "0.16.0"
73+
version: "0.16.1"
7474
file:
7575
dependency: transitive
7676
description:
@@ -84,7 +84,7 @@ packages:
8484
name: firebase_core
8585
url: "https://pub.dartlang.org"
8686
source: hosted
87-
version: "0.4.0+1"
87+
version: "0.4.0+8"
8888
flutter:
8989
dependency: "direct main"
9090
description: flutter
@@ -106,7 +106,7 @@ packages:
106106
name: front_end
107107
url: "https://pub.dartlang.org"
108108
source: hosted
109-
version: "0.1.18"
109+
version: "0.1.19"
110110
fuchsia_remote_debug_protocol:
111111
dependency: transitive
112112
description: flutter
@@ -139,7 +139,7 @@ packages:
139139
name: http_multi_server
140140
url: "https://pub.dartlang.org"
141141
source: hosted
142-
version: "2.0.6"
142+
version: "2.1.0"
143143
http_parser:
144144
dependency: transitive
145145
description:
@@ -181,7 +181,7 @@ packages:
181181
name: kernel
182182
url: "https://pub.dartlang.org"
183183
source: hosted
184-
version: "0.3.18"
184+
version: "0.3.19"
185185
matcher:
186186
dependency: transitive
187187
description:
@@ -202,7 +202,7 @@ packages:
202202
name: mime
203203
url: "https://pub.dartlang.org"
204204
source: hosted
205-
version: "0.9.6+2"
205+
version: "0.9.6+3"
206206
multi_server_socket:
207207
dependency: transitive
208208
description:
@@ -216,7 +216,7 @@ packages:
216216
name: node_preamble
217217
url: "https://pub.dartlang.org"
218218
source: hosted
219-
version: "1.4.4"
219+
version: "1.4.6"
220220
package_config:
221221
dependency: transitive
222222
description:
@@ -410,7 +410,7 @@ packages:
410410
name: watcher
411411
url: "https://pub.dartlang.org"
412412
source: hosted
413-
version: "0.9.7+10"
413+
version: "0.9.7+12"
414414
web_socket_channel:
415415
dependency: transitive
416416
description:
@@ -424,7 +424,7 @@ packages:
424424
name: yaml
425425
url: "https://pub.dartlang.org"
426426
source: hosted
427-
version: "2.1.15"
427+
version: "2.1.16"
428428
sdks:
429429
dart: ">=2.2.2 <3.0.0"
430-
flutter: ">=1.2.0 <2.0.0"
430+
flutter: ">=1.5.0 <2.0.0"

0 commit comments

Comments
 (0)