使用AVCaptureSession显示相机预览
#import <UIKit/UIKit.h> #import <AVFoundation/AVFoundation.h> @interface ViewController : UIViewController @property (nonatomic,strong) AVCaptureSession * captureSession; @property (nonatomic,strong) AVCaptureDeviceInput * videoInput; @end
- (void)viewDidLoad { [super viewDidLoad]; self.captureSession = [[AVCaptureSession alloc] init]; self.captureSession.sessionPreset = AVCaptureSessionPresetHigh; AVCaptureDevice * device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; NSError * error = nil; self.videoInput = [AVCaptureDeviceInput deviceInputWithDevice:device error:&error]; if (self.videoInput) { [self.captureSession addInput:self.videoInput]; }else{ NSLog(@"Input Error:%@",error); } AVCaptureVideoPreviewLayer * previewLayer = [AVCaptureVideoPreviewLayer layerWithSession:self.captureSession]; UIView * aView = self.view; previewLayer.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height-70); [aView.layer addSublayer:previewLayer]; }
- (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [self.captureSession startRunning]; } - (void)viewDidDisappear:(BOOL)animated { [super viewDidDisappear:animated]; [self.captureSession stopRunning]; }