La capa de vista previa de la cámara AVFoundation no funciona

Entonces, estoy tratando de implementar una cámara usando AVFoundation. Creo que hago todo bien. esto es lo que estoy haciendo

crear sesiónobtener dispositivos de tipo videoRecorre los dispositivos para obtener la cámara en la parte posterior.obtenga una entrada del dispositivo usando el dispositivo mencionado en el # 3 y agréguelo a la sesióncrear una salida de tipoAVCaptureStillImageOutputEstablezca la configuración de salida y agréguela a la sesión.obtener un CALayer desde mi punto de vista 2 (explicaré a continuación lo que quiero decir con el punto 2)crear una instancia deAVCaptureVideoPreviewLayeragregarlo a la capa mencionada en el # 7empieza a correr la sesión

Así que tengo 2 puntos de vista uno sobre el otro. La que está en la parte superior es la Vista 1 y la que está debajo es la vista 2. La Vista 1 debe proporcionar controles de cámara personalizados.

Aquí está el código:

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];

Lo que obtengo es la Vista 1 (tiene una imagen .png como fondo. La imagen tiene un agujero para que la vista debajo de ella, vista 2 pueda ser visible) y la vista 2 sea visible pero no veo lo que se supone que debo ver. Como cambié el color de fondo de la vista 2 para que se vea más claro, veo todo negro. Se supone que debo ver lo que ve la cámara.

Respuestas a la pregunta(1)

Su respuesta a la pregunta