@implementation ViewController{
AVCaptureSession *_captureSession;
AVCaptureVideoPreviewLayer *_captureLayer;
}
- (void)viewDidLoad {
[super viewDidLoad];
//实时显示摄像头内容
AVCaptureDeviceInput *captureInput = [AVCaptureDeviceInput deviceInputWithDevice:[self cameraWithPosition:AVCaptureDevicePositionFront] error:nil];
_captureSession = [[AVCaptureSession alloc] init];
[_captureSession addInput:captureInput];
[_captureSession startRunning];
_captureLayer = [AVCaptureVideoPreviewLayer layerWithSession: _captureSession];
_captureLayer.frame = CGRectMake(0, 0, ScreenWidth, ScreenHeight);
_captureLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
[self.view.layer addSublayer: _captureLayer];
}
- (AVCaptureDevice *)cameraWithPosition:(AVCaptureDevicePosition) position {
//返回和视频录制相关的所有默认设备
NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
//遍历这些设备返回跟position相关的设备
for (AVCaptureDevice *device in devices) {
if ([device position] == position) {
return device;
}
}
return nil;
}