1.视图类实现 <pre name="code" class="objc">AVCaptureVideoDataOutputSampleBufferDelegate 接口
@interface MainViewController ()<AVCaptureVideoDataOutputSampleBufferDelegate>
@property (strong,nonatomic)AVCaptureVideoPreviewLayer * preview;
@end
2.采集视频显示到preview 中
- (void)startCapture
{
//device
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
//input
AVCaptureDeviceInput *input = [[AVCaptureDeviceInput alloc]initWithDevice:device error:nil];
//output
AVCaptureVideoDataOutput *outputData = [AVCaptureVideoDataOutput new];
[outputData setSampleBufferDelegate:self queue:dispatch_get_main_queue()];
//session
AVCaptureSession *session = [AVCaptureSession new];
if ([session canAddInput:input]) {
[session addInput:input];
}
if ([session canAddOutput:outputData]) {
[session addOutput:outputData];
}
_preview = [[AVCaptureVideoPreviewLayer alloc]initWithSession:session];
_preview.videoGravity = AVLayerVideoGravityResizeAspectFill;
_preview.frame =CGRectMake(20,110,280,280);
[self.view.layer insertSublayer:self.preview atIndex:0];
[session startRunning];
}