2016-08-19 12 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]; 
関連する問題