objective c - Barcode Scanner in iOS -


I used the AV Foundation framework for barcode scanning functionality. Session = [[A Wikipedia session] Allok] Init]; Device = [AVCaptureDevice default DeviceWithMediaType: AVMediaTypeVideo]; NSError * Error = Zero; Input = [AVCaptureDeviceInput DeviceInputWidth Device: Device Error: & amp; Error]; If (input) {[session addInput: input]; } Else {NSLog (@ "error:% @", error); } Output = [[AVCaptureMetadataOutput alloc] init]; [Output SetmetaDataobjectDiilitates: Self-queue: Dispatch_Get_man_quo ()]; [Session addOutput: output]; output.metadataObjectTypes = [Output Available MetadataObjectTypes]; Prelayer = [A vectaptive video previewlayer layer description: session]; PrevLayer.frame = self.view.bounds;

Using the delicate method, I will get the barcode result ie i. Barcode number

  - (zero) captureOutput: (AVCaptureOutput *) captureOutput didOutputMetadataObjects: (NSArray * ) metadataObjects fromConnection: (AVCaptureConnection *) connection {CGRect highlightViewRect = CGRectZero; AVMetadataMachineReadableCodeObject * barCodeObject; NSString * detstring string = zero; Nursery creation * Brkdetypes = @ [Avmetdataobjektypeupakekde, Avmetdataobjekttipakdae39Code, Avmetdataobjekttipakdae39Mod43Code, Avmetdataobjektteepianl3Code, Avmetdataobjektteepian8Code, Avmetdataobjekttipakdae93Code, Avmetdataobjekttipakdael28Code, Avmetdataobjektypindf4l7Code, Avmetdataobjektypekrkde, Avmetdataobjektypeateksode]; (The type of metadata Obaijeks to Avimtadetaobaj * metadata) {(Ansstiing * Barkodtaps) {if ([Metadata. Type Avltostring Type]) {Barkodobikekt = (Avimetadetamaciinaredablkodobak *) [_ Preeleyr Tronsformeted Metadetaobejformmatetadetaः (Avimetadetamaciinaredablkodobjekt *) for Metadata]; BarcodeString = [(AVMetadataMachineReadableCodeObject * Metadata String Value)]; break; }} If (barcode string! = Zero) {nslog (@ "barcode string:% @", barcode string); } Else label.text = @ "(none)"; }}   

Note: To do this, but, main reason, I do not always get a barcode number. Please help me for this problem.

Your representative method looks fine, but you should add:. VideoGravity to get started in your AVCaptureVideo Preview Layer (Pre-Layer) and session. Try adding these lines of code at the end of your first method:

  prevLayer.videoGravity = AVLayerVideoGravityResizeAspectFill; [Self.view.layer addSublayer: prevLayer]; [Beginning session];    

Comments

Popular posts from this blog

Pass DB Connection parameters to a Kettle a.k.a PDI table Input step dynamically from Excel -

multithreading - PhantomJS-Node in a for Loop -

c++ - MATLAB .m file to .mex file using Matlab Compiler -