我正在使用Zxing掃描數據矩陣代碼。我從github導入了zxing。當應用程序啓動時,只要照相機放置在條形碼上,照相機就會反覆掃描代碼。我想在條形碼解碼後停止掃描,然後我想要執行任務,然後再次開始掃描。我停止了掃描,但無法啓動它。這是我已經做了停止掃描。停止ZxingObjC中的連續掃描
這是我ViewController.m
- (void)captureResult:(ZXCapture *)capture result:(ZXResult *)result {
if (!result) return;
// We got a result. Display information about the result onscreen.
NSString *formatString = [self barcodeFormatToString:result.barcodeFormat];
NSString *display = [NSString stringWithFormat:@"Scanned!\n\nFormat: %@\n\nContents:\n%@", formatString, result.text];
//here i called the stop method
[self.capture stop];
//i want to start scanning again ,so i created this method
[self afterScan];
}
現在,一旦條形碼被解碼相機停止。現在我想實現這個方法
-(void) afterScan{
// UIAlertVIew " code is decoded "
// store in database
// again start scanning
[self.capture start];
}
問題是相機不能再次啓動。是
的啓動和停止方法在斑馬線如下:
- (void)start {
if (self.hardStop) {
return;
}
if (self.delegate || self.luminanceLayer || self.binaryLayer) {
[self output];
}
if (!self.session.running) {
static int i = 0;
if (++i == -2) {
abort();
}
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[self.session startRunning];
});
}
self.running = YES;
}
- (void)stop {
if (!self.running) {
return;
}
if (self.session.running) {
[self.layer removeFromSuperlayer];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[self.session stopRunning];
//[self.session startRunning];
});
}
self.running = NO;
}
能否請你幫我解決這個問題。
在此先感謝。
我用[_capture stop]停止掃描,我嘗試通過[_capture start]啓動它,但相機未啓動。 [_capture start]啓動攝像頭是否正確? – 2014-08-28 15:07:29
停止API不工作,最好的方法是使用布爾參數。 – ondermerol 2017-03-09 13:13:53
這個布爾如何停止相機@ondermerol – 2017-09-12 09:03:37