iOS Custom Keyboard - Kamera funktioniert nicht

Ich möchte eine benutzerdefinierte Tastatur erstellen, die als Barcodescanner fungiert. Ich habe bereits die gesamte Codierung durchgeführt, aber die Ausgabe ist nicht wie erwartet: Ich werde nach Kameraberechtigungen gefragt (beim ersten Mal), aber die Kamera sendet kein Video an die Ansicht.

Ich denke, dass es aus Sicherheitsgründen einige Einschränkungen bei der Verwendung von Tastaturen geben könnte?!?

1.) Schalten Sie die Taschenlampe ein

-(void) turnFlashOn
{
    AVCaptureDevice *flashLight = [AVCaptureDevice
                                   defaultDeviceWithMediaType:AVMediaTypeVideo];
    if([flashLight isTorchAvailable] && [flashLight
                                         isTorchModeSupported:AVCaptureTorchModeOn])
    {
        BOOL success = [flashLight lockForConfiguration:nil];
        if(success){
            NSError *error;
            [flashLight setTorchMode:AVCaptureTorchModeOn];
            [flashLight setTorchModeOnWithLevel:1.0 error:&error];
            NSLog(@"Error: %@", error);
            [flashLight unlockForConfiguration];
            NSLog(@"flash turned on -> OK");

        }
        else
        {
            NSLog(@"flash turn on -> ERROR");
        }
    }

}

Dies gibt mir dieses Protokoll aus, aber mit dem Flash passiert nichts:

Error: (null)
flash turned on -> OK

2.) Scannen Sie den Barcode (Teil von viewDidLoad)

    // SCANNER PART
self.captureSession = [[AVCaptureSession alloc] init];
AVCaptureDevice *videoCaptureDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
NSError *error = nil;
AVCaptureDeviceInput *videoInput = [AVCaptureDeviceInput deviceInputWithDevice:videoCaptureDevice error:&error];
if(videoInput)
    [self.captureSession addInput:videoInput];
else
    NSLog(@"Error: %@", error);

AVCaptureMetadataOutput *metadataOutput = [[AVCaptureMetadataOutput alloc] init];
[self.captureSession addOutput:metadataOutput];
[metadataOutput setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()];
[metadataOutput setMetadataObjectTypes:@[AVMetadataObjectTypeQRCode, AVMetadataObjectTypeEAN13Code]];

AVCaptureVideoPreviewLayer *previewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:self.captureSession];

camView = [[UIView alloc] initWithFrame: [[UIScreen mainScreen] bounds]];
previewLayer.frame = camView.layer.bounds;
[camView.layer addSublayer:previewLayer];
self.keyboard.barcodeView.clipsToBounds=YES;
camView.center = CGPointMake(self.keyboard.barcodeView.frame.size.width/2, self.keyboard.barcodeView.frame.size.height/2);

[self.keyboard.barcodeView addSubview:camView];

Und wenn ich eine spezielle Taste auf meiner Tastatur drücke, heißt diese:

-(vo,id)scanBarcodeNow{
AudioServicesPlaySystemSound(systemSoundTock);
NSLog(@"Start scanning...");
self.keyboard.barcodeView.hidden=false;
[self.keyboard.barcodeView addSubview:camView];
[self.keyboard.barcodeView setBackgroundColor:[UIColor redColor]];
[self.captureSession startRunning];

}

Das einzige, was passiert, ist, dass die keyboard.barcodeView ihre Hintergrundfarbe in rot ändert. Ich habe das gemacht, um zu sehen, dass die gesamte Verkabelung, die ich gemacht habe, in Ordnung sein sollte. Es wird aber kein video von der cam gezeigt ....

Kann mir jemand helfen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage