AVFoundation Camera Preview Layer funktioniert nicht

Ich versuche also, eine Kamera mit AVFoundation zu implementieren. Ich denke, ich mache alles richtig. das ist was ich tue

Sitzung erstellenHolen Sie sich Geräte vom Typ VideoSchleife durch Geräte, um die Kamera auf der Rückseite zu bekommenHolen Sie sich einen Geräteeingang mit dem in # 3 genannten Gerät und fügen Sie ihn der Sitzung hinzuErstellen Sie eine Ausgabe vom TypAVCaptureStillImageOutputLegen Sie die Ausgabeeinstellungen fest und fügen Sie sie der Sitzung hinzubekomme einen CALayer aus meiner Sicht 2 (wird unten erklärt, was ich mit Sicht 2 meine)Erstellen Sie eine Instanz vonAVCaptureVideoPreviewLayerfüge es der in # 7 erwähnten Ebene hinzuStarten Sie die Sitzung

Ich habe also 2 Ansichten übereinander. Oben ist Ansicht 1 und unten Ansicht 2. Ansicht 1 soll benutzerdefinierte Kamerasteuerungen enthalten.

Hier ist der Code:

self.session = [[AVCaptureSession alloc]init];
[self.session setSessionPreset:AVCaptureSessionPresetHigh];
NSArray *devices = [[NSArray alloc]init];
devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
for (AVCaptureDevice *device in devices){
    if([device position] == AVCaptureDevicePositionBack){
        self.device = device;
        break;
    }
}
NSError *error;
self.input = [[AVCaptureDeviceInput alloc]initWithDevice:self.device error:&error];
if([self.session canAddInput:self.input]){
    [self.session addInput:self.input];    
}


self.stillImageOutput = [[AVCaptureStillImageOutput alloc]init];
NSDictionary *outputSettings = @{AVVideoCodecKey : AVVideoCodecJPEG};
[self.stillImageOutput setOutputSettings:outputSettings];

[self.session addOutput:self.stillImageOutput];

CALayer *cameraLayer = self.cameraView.layer;
self.cameraView.backgroundColor = [UIColor clearColor];

AVCaptureVideoPreviewLayer *preview = [[AVCaptureVideoPreviewLayer alloc]initWithSession:self.session];
[cameraLayer addSublayer:preview];

[self.session startRunning];

Was ich bekomme, ist Ansicht 1 (es hat ein PNG-Bild als Hintergrund. Das Bild hat ein Loch, so dass die Ansicht darunter, Ansicht 2 sichtbar sein kann) und Ansicht 2 ist sichtbar, aber ich sehe nicht, was ich soll. Da ich die Hintergrundfarbe für Ansicht 2 geändert habe, um die Farbe zu löschen, sehe ich alles schwarz. Ich soll sehen, was die Kamera sieht.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage