前言(2018.3.1更新)
hihi 我来更新了,这边博客下面有个小哥哥说用了不好用,今天又有一位程序员朋友加我微信问这个问题,抽了5分钟做了个Demo在github上摄像头翻转,供大家参考,省的大家出现问题不知道怎么解决啦,嘻嘻。
以下原文:
//一定要导入这个库 #import <AVFoundation/AVFoundation.h> //后面的session是指这个属性 @property (nonatomic,retain)AVCaptureSession *session; // Switching between front and back cameras - (AVCaptureDevice *)cameraWithPosition:(AVCaptureDevicePosition)position { NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo]; for (AVCaptureDevice *device in devices ) if ( device.position == position ) return device; return nil; } - (void)swapFrontAndBackCameras { // Assume the session is already running NSArray *inputs =self.session.inputs; for (AVCaptureDeviceInput *input in inputs ) { AVCaptureDevice *device = input.device; if ( [device hasMediaType:AVMediaTypeVideo] ) { AVCaptureDevicePosition position = device.position; AVCaptureDevice *newCamera =nil; AVCaptureDeviceInput *newInput =nil; if (position ==AVCaptureDevicePositionFront) newCamera = [self cameraWithPosition:AVCaptureDevicePositionBack]; else newCamera = [self cameraWithPosition:AVCaptureDevicePositionFront]; newInput = [AVCaptureDeviceInput deviceInputWithDevice:newCamera error:nil]; // beginConfiguration ensures that pending changes are not applied immediately [self.session beginConfiguration]; [self.session removeInput:input]; [self.session addInput:newInput]; // Changes take effect once the outermost commitConfiguration is invoked. [self.session commitConfiguration]; break; } } }