iOS使用原生AVCapture系列

2020-01-21 07:24:39刘景俊

概述:

可用于音频、二维码、拍照、录制视频 (均可自定义界面)

常见的输出信号:

  • AVCaptureAudioDataOutput 音频输出
  • AVCaptureFileOutput 文本输出
  • AVCaptureMetadataOutput 二维码 条形码…
  • AVCaptureStillImageOutput 拍照
  • AVCaptureMovieFileOutput 录制视频(不能实现暂停录制和定义视频文件类型)
  • AVCaptureVideoDataOutput + AVCaptureAudioDataOutput 录制视频的灵活性更强(能实现暂停录制和定义视频文件类型)

    AVCaptureMovieFileOutput输出流实现视频录制

    初始化会话层

    
    -(void)sessionConfiguration{
    
      //初始化一个会话
      session = [[AVCaptureSession alloc] init];
      [session setSessionPreset:AVCaptureSessionPresetMedium];
    
      //创建视频设备
      AVCaptureDevice *videoDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
    
      //根据设备创建输入信号
      deviceInput = [AVCaptureDeviceInput deviceInputWithDevice:videoDevice error:nil];
    
      //添加 输出设备 movieFile
      self.deviceMovieFileOutput = [[AVCaptureMovieFileOutput alloc] init];
    
      [session beginConfiguration];
      //session添加设备输入信号
      if ([session canAddInput:deviceInput]) {
        [session addInput:deviceInput];
      }
      //session添加设备输出信号
      if ([session canAddOutput:self.deviceMovieFileOutput]) {
        [session addOutput:self.deviceMovieFileOutput];
      }
      [session commitConfiguration];
    }
    
    

    创建预览图层