AVCaptureSession escanea QRCode en un marco específico

Lo que necesito todo es hacer un escáner para get los valores QRCode.

Y seguí los documentos de desarrollo de Apple, uso AVCaptureDevice, AVCaptureSession, AVCaptureDeviceInput, AVCaptureVideoPreviewLayer, AVCaptureMetadataOutput para que funcione.

_videoDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; 

Actualmente, obtengo el qrcode con éxito, pero si hay dos o más qrcodes en la camera, obtendremos varios qrcode, así que solo quiero escanear el marco específico en la pantalla, por ejemplo, CGRectMake {100, 100, 200, 200 }, para asegurarse de que solo hay un qrcode una vez que procesamos.

Entonces, ¿cómo podemos especificar el cuadro que queremos en AVCaptureDeviceInput?

¡Muchas gracias!

Utilice la propiedad rectOfInterest.

 AVCaptureMetadataOutput *metaDataOutput = [[ AVCaptureMetadataOutput alloc] init]; metaDataOutput.rectOfInterest = CGRectMake(0, 0, 0.5f, 0.5f); @discussion The value of this property is a CGRect that determines the receiver's rectangle of interest for each frame of video. The rectangle's origin is top left and is relative to the coordinate space of the device providing the metadata. Specifying a rectOfInterest may improve detection performance for certain types of metadata. The default value of this property is the value CGRectMake(0, 0, 1, 1). Metadata objects whose bounds do not intersect with the rectOfInterest will not be returned.