Comments (2)
Thanks @jaybowong. It looks like this exception was caused by nil
being returned by deviceInputWithDevice:error:
instead of a valid AVCaptureDeviceInput
.
According to the documentation for this method, it looks like this could happen if the device is no longer available or in use:
This method returns an instance of AVCaptureDeviceInput that can be used to capture data from an AVCaptureDevice in an AVCaptureSession. This method attempts to open the device for capture, taking exclusive control of it if necessary. If the device cannot be opened because it is no longer available or because it is in use, for example, this method returns nil, and the optional outError parameter points to an NSError describing the problem.
It's possible the user granted camera access to your app, started scanning, then rejected permission, and attempted to start scanning again. Another possibility is they were using the camera in another app and quickly switched over to yours, not giving the camera enough time to unlock for use.
Either way, I think this issue highlights an area of MTBBarcodeScanner that can be improved: instead of silently (or loudly, in this case!) failing when errors occur in the AVFoundation methods, I think it should propagate those errors back to the startScanning
method so the user of MTBBarcodeScanner can act on the error.
With my latest update, if the deviceInputWithDevice:error:
fails with an error, that error will then be available in the two new scanning methods (Note an error
parameter has been added):
- (void)startScanningWithError:(NSError **)error;
- (void)startScanningWithResultBlock:(void (^)(NSArray *codes))resultBlock error:(NSError **)error;
Since this changes the method signature, I'm going to release this at MTBBarcodeScanner v3.0.0. Thanks again!
from mtbbarcodescanner.
This is now in v3.0.0. Thanks!
from mtbbarcodescanner.
Related Issues (20)
- Only works with iOS10+ after recent changes HOT 2
- Impossible to read CODABAR barcode HOT 1
- Disable rotation HOT 1
- Initial camera setting HOT 1
- Warnings HOT 4
- Call stopScanning crash in viewDidDisappear HOT 4
- Flutter + Xcode 8.0: 3 errors, 9 warnings HOT 1
- Catalyst Support? HOT 4
- Maximum of read multiple codes HOT 3
- Problem configurating scanner with QR and Barcode HOT 5
- output becomes Garbled text HOT 8
- Crash NSInvalidArgumentException *** -[AVCaptureMetadataOutput setMetadataObjectTypes:] Unsupported type found - use -availableMetadataObjectTypes HOT 3
- when barcode data increased it is difficult to read Code.. HOT 1
- UIView preview has issues during orientation changes HOT 6
- Define Barcodetype in Swift HOT 3
- Camera Unfreeze method not working on. HOT 3
- Unrecognized Barcode Style HOT 1
- Camera unfreeze is corrupting flash HOT 3
- Getting the bytes raw HOT 1
- It's crashing on iPad and iPhone after you try to scan QR code. HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mtbbarcodescanner.