2016-08-19 6 views
-1

Я хочу сделать приложение iOS в объекте C. Сейчас я застрял в создании слоя предварительного просмотра для вывода предварительного просмотра AVCapture. Может кто-нибудь рассказать мне, как успешно начать сеанс захвата изображения, используя сеанс камеры AVCapture в iOS Objective C? Буду признателен за любую оказанную помощь. Спасибо.Как правильно начать сеанс камеры, используя сеанс AVCapture/AVCapture

+2

Покажите свой код до сих пор, что вы пытались – user3182143

ответ

3

Я даю вам ответить на 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]; 
} 
+0

Спасибо. Позвольте мне попробовать. – sreejesh

0

Попробуйте этот код, чтобы получить идентификатор камеры.

NSString *cameraID = nil; 

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

cameraID = [captureDevice.devices.lastObject localizedName]; 
Смежные вопросы