自定义相机工作,实时预览不

时间:2014-08-18 17:37:54

标签: ios objective-c avcapturesession avcapture

我正在尝试构建自定义相机应用。

任务:

  1. 显示实时图像预览。
  2. 允许您点按屏幕上的任意位置以捕捉图像。
  3. 在实时图像预览上方显示生成的图像。
  4. 目前除了任务1外,一切都有效。包含我的实时图像预览的视图仍然是它的背景颜色(或者在没有选择背景颜色时保持透明),即使相机正常运行并且显示图像点击屏幕时。有任何想法吗?我已经提到了之前的讨论,我想我已经涵盖了我的所有基础:AVFoundation camera preview layer not working

    我错过了什么?

    -(void)viewWillAppear:(BOOL)animated{
        session = [[AVCaptureSession alloc] init];
        [session setSessionPreset:AVCaptureSessionPresetPhoto];
    
        AVCaptureDevice *inputDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
        NSError *error;
        AVCaptureDeviceInput *deviceInput = [AVCaptureDeviceInput deviceInputWithDevice:inputDevice error:&error];
    
        if ([session canAddInput:deviceInput]) {
            [session addInput:deviceInput];
        }
        AVCaptureVideoPreviewLayer *previewlayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session];
        [previewlayer setVideoGravity:AVLayerVideoGravityResizeAspectFill];
    
        CALayer *rootLayer = [[self view] layer];
        [rootLayer setMasksToBounds:YES];
        CGRect frame = self.frameforCapture.frame;
    
        [previewlayer setFrame:frame];
    
        [rootLayer insertSublayer:previewlayer atIndex:0];
    
        stillImageOutput = [[AVCaptureStillImageOutput alloc] init];
        NSDictionary *outputSettings = [[NSDictionary alloc] initWithObjectsAndKeys:AVVideoCodecJPEG, AVVideoCodecKey, nil];
        [stillImageOutput setOutputSettings:outputSettings];
    
        [session addOutput:stillImageOutput];
    
        [session startRunning];
        //....
    }
    

0 个答案:

没有答案