首先初始化camera 设置代理 能够获取每一帧视频、图像buffer
然后再使用定时器 定时使能
获取到buffer通过AVAssetWriter 写入视频文件
关键是使用GCD信号量来阻塞线程、等待任务
//使用GPUIMAGE 方便 也自己修改为系统的相机
_camera = [[GPUImageVideoCamera alloc]initWithSessionPreset:AVCaptureSessionPresetHigh cameraPosition:AVCaptureDevicePositionBack];
_camera.outputImageOrientation = UIDeviceOrientationPortrait;
_camera.horizontallyMirrorFrontFacingCamera = YES;
_camera.delegate = self;
_preview = [[GPUImageView alloc]initWithFrame:self.view.frame];
[self.view addSubview:_preview];
[_camera addTarget:self.preview];
[_camera startCameraCapture];
_btn = [[UIButton alloc]initWithFrame:CGRectMake(20, self.view.frame.size.height - 100, 100, 48)];
_btn.backgroundColor = [UIColor orangeColor];
[_btn setTitle:@"点击开始" forState:UIControlStateNormal];
[_btn addTarget:self action:@selector(onBrginRecordAction:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:_btn];
_btn2 = [[UIButton alloc]initWithFrame:CGRectMake(140, self.view.frame.size.height - 100, 200, 48)];
_btn2.backgroundColor = [UIColor orangeColor];
[_btn2 setTitle:@"点击开始" forState:UIControlStateNormal];
[_btn2 addTarget:self action: