Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何使用AVCapture会话/AVCapture正确启动摄像头会话_Ios_Objective C_Avcapturesession_Avcapture - Fatal编程技术网

Ios 如何使用AVCapture会话/AVCapture正确启动摄像头会话

Ios 如何使用AVCapture会话/AVCapture正确启动摄像头会话,ios,objective-c,avcapturesession,avcapture,Ios,Objective C,Avcapturesession,Avcapture,我想在objective C中制作一个iOS应用程序。现在我一直在制作AVCapture预览输出的预览层。有人能告诉我如何使用iOS Objective C中的AVCapture camera会话成功启动图像捕获会话吗?非常感谢您的帮助。谢谢。我给你回答AVCaptureSession的问题 -(void)capture { NSError *error=nil; //Capture Session AVCaptureSession *session = [[AVCaptur

我想在objective C中制作一个iOS应用程序。现在我一直在制作AVCapture预览输出的预览层。有人能告诉我如何使用iOS Objective C中的AVCapture camera会话成功启动图像捕获会话吗?非常感谢您的帮助。谢谢。

我给你回答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];
}

请尝试此代码以获取相机id

NSString *cameraID = nil;

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

cameraID = [captureDevice.devices.lastObject localizedName];

显示您的代码,直到现在您已经尝试感谢您。让我试试这个。