Ios 在iPhone(OS 7)上运行摄像头

Ios 在iPhone(OS 7)上运行摄像头,ios,iphone,ipad,ios7,Ios,Iphone,Ipad,Ios7,我有在iPad上完美运行的代码 self.clockInEmployee = nil; self.clockInEmployee = [[userInfo userInfo] valueForKey:@"employee"]; self.clockInEmployeeRole = [[userInfo userInfo] valueForKey:@"role"]; CLog (@"PIN %@", self.clockInEmployee.pin); UIImagePickerControll

我有在iPad上完美运行的代码

self.clockInEmployee = nil;
self.clockInEmployee = [[userInfo userInfo] valueForKey:@"employee"];
self.clockInEmployeeRole = [[userInfo userInfo] valueForKey:@"role"];
CLog (@"PIN %@", self.clockInEmployee.pin);

UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = (id)self;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.showsCameraControls = YES;
picker.cameraDevice = UIImagePickerControllerCameraDeviceFront;
picker.cameraOverlayView = self.cameraOverlay.view;
if (isPhone())
{
    picker.view.frame = CGRectMake(0, 748, 1024, 748);
    [mainNavController.view addSubview:picker.view];
    [UIView animateWithDuration:0.5 animations:^{
        picker.view.frame = CGRectMake(0, 0, 1024, 748);

    } completion:^(BOOL finished){
        [picker viewDidAppear:YES];
    }];
}
modViewController = picker;
但在iPhone上,当它试图启动摄像头时,我只看到黑屏

但如果我试着像那样启动它:

[appPresentingViewController presentViewController:picker animated:YES completion:nil];
它发射成功。但在我的特定项目中,它会导致一些UI问题,因此无法使用

我怎么做这个

if (isPhone())
{
    picker.view.frame = CGRectMake(0, 748, 1024, 748);
    [mainNavController.view addSubview:picker.view];
    [UIView animateWithDuration:0.5 animations:^{
        picker.view.frame = CGRectMake(0, 0, 1024, 748);

    } completion:^(BOOL finished){
        [picker viewDidAppear:YES];
    }];
}
适用于iPad和iPhone?

请尝试以下方法:-

//create an overlay view instance
OverlayView *overlay = [[OverlayView alloc]
        initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGTH)];

//create a new image picker instance
UIImagePickerController *picker =
                [[UIImagePickerController alloc] init];
//set source to video!
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
//hide all controls
picker.showsCameraControls = NO;
picker.navigationBarHidden = YES;
picker.toolbarHidden = YES;
//make the video preview full size
picker.wantsFullScreenLayout = YES;
picker.cameraViewTransform =
CGAffineTransformScale(picker.cameraViewTransform,
            CAMERA_TRANSFORM_X,
            CAMERA_TRANSFORM_Y);
//set our custom overlay view
picker.cameraOverlayView = overlay;

//show picker
[self presentModalViewController:picker animated:YES];

如需进一步参考-

您可能希望浏览AVCAM的Apple示例项目,可以找到它

您需要做的是这样的事情:

AVCaptureSession *avcam = [[AVCaptureSession alloc] init];
    AVCaptureVideoPreviewLayer *previewLayer = 
        [AVCaptureVideoPreviewLayer layerWithSession:avcam];
    previewLayer.frame = self.previewView.bounds; 
   [self.previewView.layer addSublayer:previewLayer];