-1

I want to make an iOS app in objective C. Right now I'm stuck on making the preview layer to the AVCapture preview output. Could someone please tell me how to successfully start an image capture session using the AVCapture camera session in iOS Objective C? Any help is much appreciated. Thank you.

sreejesh
  • 718
  • 5
  • 15

2 Answers2

4

I give you answer for AVCaptureSession

-(void)capture
{ 
   NSError *error=nil;
   //Capture Session
   AVCaptureSession *session = [[AVCaptureSession alloc]init];
   session.sessionPreset = AVCaptureSessionPresetPhoto;

   //Add device
   AVCaptureDevice *inputDevice = nil;
   NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
   for(AVCaptureDevice *camera in devices)
   {
      if([camera position] == AVCaptureDevicePositionBack)  // is Back camera 
      { 
         inputDevice = camera;
         break;
      }
   }
   [session addInput:inputDevice];

    //Output
    AVCaptureVideoDataOutput *output = [[AVCaptureVideoDataOutput alloc] init];
    [session addOutput:output];
    output.videoSettings = @{ (NSString *)kCVPixelBufferPixelFormatTypeKey : @(kCVPixelFormatType_32BGRA) };

    //Preview Layer
    AVCaptureVideoPreviewLayer *previewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session];
    previewLayer.frame = viewForCamera.bounds;
    previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
    [viewForCamera.layer addSublayer:previewLayer];

    //Start capture session
    [session startRunning];
}
user3182143
  • 9,459
  • 3
  • 32
  • 39
0

Try this code to get camera id.

NSString *cameraID = nil;

NSArray *captureDeviceType = @[AVCaptureDeviceTypeBuiltInWideAngleCamera];
AVCaptureDeviceDiscoverySession *captureDevice = 
              [AVCaptureDeviceDiscoverySession 
                discoverySessionWithDeviceTypes:captureDeviceType 
                mediaType:AVMediaTypeVideo 
                position:AVCaptureDevicePositionUnspecified];

cameraID = [captureDevice.devices.lastObject localizedName];
ρяσѕρєя K
  • 132,198
  • 53
  • 198
  • 213
Adriel Artiza
  • 327
  • 4
  • 12