AVcaptureMetadataOutput在ios10中不起作用

斯科特

我将其AVCaptureMetadataOutputObjectsDelegate用于条形码扫描仪,并且效果很好。但是自iOS 10起,它不再起作用。使用按钮打开时,总是会收到EXC_BAD_ACCESS错误barcodescanner当我将输出添加到会话时,会发生错误。

有谁可以帮助我吗?我真的尽了一切,这让我发疯。

诺德斯

这是我的Objective-C,它在iOS 10下可以正常工作。IIRC我认为如果var仅在该方法中是本地的,我会遇到麻烦。确保所有变量都是属性。

- (void)initialiseVideoSession {

    _session = [[AVCaptureSession alloc] init];
    _device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];

    NSError *error = nil;

    _input = [AVCaptureDeviceInput deviceInputWithDevice:_device error:&error];

    if (_input) {

        [_session addInput:_input];

        _output = [[AVCaptureMetadataOutput alloc] init];
        [_output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()];
        [_session addOutput:_output];

        _output.metadataObjectTypes = [_output availableMetadataObjectTypes];

        _prevLayer = [AVCaptureVideoPreviewLayer layerWithSession:_session];
        _prevLayer.frame = self.view.bounds;
        _prevLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
        [self.view.layer addSublayer:_prevLayer];

        [_session startRunning];

    } else {
        // Error
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章