Ios iPhone:通过编程方式使用前置摄像头拍照

Ios iPhone:通过编程方式使用前置摄像头拍照,ios,camera,Ios,Camera,我想通过iphone应用程序中的前置摄像头以编程方式拍照 我不希望用户拾取图像或与图像选择器进行任何交互。。只想拍摄图像并保存在文档中。。这可能吗?编辑:我的错,看起来你实际上可以从AVCaptureSession中完成。虽然我无法确定为什么这是可能的。对我来说,这似乎是一个潜在的虐待理由 原始(错误)答案: 不,没有用户交互就不可能拍照,不管是正面还是背面相机。 因为我可以从你的问题中了解到,AV基金会是你所需要的。 看看这个来自苹果的演示源:试试这个-- -(iAction)扫描按钮已标记

我想通过iphone应用程序中的前置摄像头以编程方式拍照
我不希望用户拾取图像或与图像选择器进行任何交互。。只想拍摄图像并保存在文档中。。这可能吗?

编辑:我的错,看起来你实际上可以从AVCaptureSession中完成。虽然我无法确定为什么这是可能的。对我来说,这似乎是一个潜在的虐待理由

原始(错误)答案:
不,没有用户交互就不可能拍照,不管是正面还是背面相机。

因为我可以从你的问题中了解到,AV基金会是你所需要的。 看看这个来自苹果的演示源:

试试这个--

-(iAction)扫描按钮已标记
{
//添加:提供一个条形码读取器,可从摄像头提要进行扫描
ZBarReaderViewController*读卡器=[ZBarReaderViewController新建];
reader.readerDelegate=self;
reader.supportedOrientationMask=zBaroOrientationMaskall;
ZBarImageScanner*scanner=reader.scanner;
//TODO:(可选)此处的附加读卡器配置
//示例:禁用很少使用的I2/5以提高性能
[扫描仪设置符号:ZBAR_I25]
配置:ZBAR_CFG_启用
至:0];
//显示并释放控制器
[自我呈现模式控制器:读卡器
动画:是];
[读者发布];
}
-(无效)imagePickerController:(UIImagePickerController*)读卡器
didFinishPickingMediaWithInfo:(NSDictionary*)信息
{ 
//添加:获取解码结果
id结果=
[信息对象forkey:ZBarReaderControllerResults];
ZBarSymbol*符号=nil;
用于(结果中的符号)
//示例:只需抓取第一个条形码
打破
//示例:对条形码数据执行一些有用的操作
resultText.text=symbol.data;
bid.text=symbol.data;
//示例:对条形码图像执行一些有用的操作
结果图像=
[info objectForKey:UIImagePickerControllerOriginalImage];
//添加:关闭控制器(注意从*读卡器*!)
[reader dismissModalViewControllerAnimated:是];
}

你可能会这么想,但不是。您可以在用户根本不知道的情况下抓取视频帧,无论是前置摄像头还是后置摄像头。我认为从相机获得高分辨率的静止图像总是会触发快门声音。嗯,但是从什么框架?我认为所有图像捕获框架都提供了用户必须激活才能开始视频/静态图像捕获的UI?请查看AVCaptureSession。设置输入和输出设备并启动会话后,您将在captureOutput:didOutputSampleBuffer:fromConnection:callback中获得相机帧。不需要UI。可能的重复
   - (IBAction) scanButtonTapped
          {
         // ADD: present a barcode reader that scans from the camera feed
            ZBarReaderViewController *reader = [ZBarReaderViewController new];
            reader.readerDelegate = self;
             reader.supportedOrientationsMask = ZBarOrientationMaskAll;

              ZBarImageScanner *scanner = reader.scanner;
           // TODO: (optional) additional reader configuration here

          // EXAMPLE: disable rarely used I2/5 to improve performance
               [scanner setSymbology: ZBAR_I25
               config: ZBAR_CFG_ENABLE
                   to: 0];

          // present and release the controller
               [self presentModalViewController: reader
                         animated: YES];
               [reader release];
    }
    - (void) imagePickerController: (UIImagePickerController*) reader
       didFinishPickingMediaWithInfo: (NSDictionary*) info
        { 
          // ADD: get the decode results
             id<NSFastEnumeration> results =
               [info objectForKey: ZBarReaderControllerResults];
               ZBarSymbol *symbol = nil;
               for(symbol in results)
                   // EXAMPLE: just grab the first barcode
                      break;

                   // EXAMPLE: do something useful with the barcode data
                      resultText.text = symbol.data;
                      bid.text=symbol.data;

                   // EXAMPLE: do something useful with the barcode image
                      resultImage.image =
                      [info objectForKey: UIImagePickerControllerOriginalImage];

                   // ADD: dismiss the controller (NB dismiss from the *reader*!)
                      [reader dismissModalViewControllerAnimated: YES];
                 }