iOS捕捉图像

iOS媒体捕捉

aa

一、捕捉类介绍

  1. 捕捉会话AVCaptureSession

    AV Foundation捕捉栈的核心类是AVCaptureSession,这个类相当与一个插排,用于连接输入和输出资源,

    捕捉会话还可以额外配置一个会话预设值(session preset)用来控制捕捉数据的格式和质量

  2. 捕捉设备AVCaptureDevice

    AVCaptureDevice为摄像头或麦克风等物理设备定义了一个接口,它针对物理硬件设备定义了大量的控制

    //根据媒体类型返回一个系统指定的默认设备
    AVCaptureDevice *videoDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
  3. 捕捉设备的输入AVCaptureDeviceInput

    AVCaptureDevice不能之间介入会话,需要借助AVCaptureDeviceInput实例来封装一下

    NSError *error = nil;
    AVCaptureDeviceInput *videoInput = [AVCaptureDeviceInput deviceInputWithDevice:videoDevice error:&error];
  4. 捕捉的输出AVCaptureOutput

    AVCaptureOutput是一个抽象基类,AVFoundation定义了一些这个抽象类的高级拓展类

    • AVCaptureStillImageOutput:静态图片输出
    • AVCaptureMovieFileOutput:视频输出
    • AVCaptureVideoDataOutput:视频数据输出
    • AVCaptureAudioDataOutput:音频数据输出
  5. 捕捉连接AVCaptureConnection

    捕捉会话需要确定有给定捕捉设备输入渲染的媒体类型,并自动建立其能够接收该媒体类型的捕捉输出端的连接。

  6. 捕捉预览AVCaptureVideoPreviewLayer

    AVCaptureVideoPreviewLayer可以预览正在捕捉的画面

二、创建捕捉

创建捕捉的步骤

  • 创建一个一个AVCaptureSession
  • 获取一个AVCaptureDevice
  • AVCaptureDevice创建一个AVCaptureDeviceInput
  • AVCaptureDeviceInput添加到AVCaptureSession
  • 创建一个AVCaptureDeviceOutPut
  • AVCaptureDeviceOutPut添加到AVCaptureSession
  • AVCaptureSession开始捕捉

    1. 配置会话
    - (BOOL)setupSession {
    
     //设置session
     self.session = [[AVCaptureSession alloc] init];
     if([self.session canSetSessionPreset:AVCaptureSessionPresetMedium]){
         self.session.sessionPreset = AVCaptureSessionPresetMedium;
     }
    
     //设置视频输入设备
     _videoDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
     _videoDeviceInput = [AVCaptureDeviceInput deviceInputWithDevice:_videoDevice error:nil];
     if(_videoDeviceInput){
         if([self.session canAddInput:_videoDeviceInput]){
             [self</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值