2016-08-19 33 views
-1

正常啓動相機會議上,我想在客觀C.右iOS應用程序,現在我卡在製作預覽層到AVCapture預覽輸出。有人能告訴我如何在iOS Objective C中使用AVCapture攝像頭會話成功啓動圖像捕捉會話嗎?任何幫助深表感謝。謝謝。如何使用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

試試這個代碼以獲取攝像機ID。

NSString *cameraID = nil; 

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

cameraID = [captureDevice.devices.lastObject localizedName];