//1. 创建会话层

self . device = [ AVCaptureDevice defaultDeviceWithMediaType : AVMediaTypeVideo ];

// Input

self . input = [ AVCaptureDeviceInput deviceInputWithDevice : self . device error : nil ];

self . devicePosition = self . device . position ;

// Output

self . captureOutput = [[ AVCaptureStillImageOutput alloc ] init ];

NSDictionary *outputSettings = [[ NSDictionary alloc ] initWithObjectsAndKeys : AVVideoCodecJPEG , AVVideoCodecKey , nil ];

[ self . captureOutput setOutputSettings :outputSettings];

// Session

self . session = [[ AVCaptureSession alloc ] init ];

[ self . session setSessionPreset : AVCaptureSessionPresetHigh ];

if ([ self . session canAddInput : self . input ])

[ self . session addInput : self . input ];

if ([ self . session canAddOutput : _captureOutput ])

[ self . session addOutput : _captureOutput ];

//方向适配,开启

CMMotionManager *motionManager = [[ CMMotionManager alloc ] init ];

self.motionManager = motionManager;

if ( _motionManager . deviceMotionAvailable ) {

NSLog ( @"Device Motion Available" );

[ _motionManager startDeviceMotionUpdatesToQueue :[ NSOperationQueue currentQueue ]

withHandler : ^( CMDeviceMotion *motion, NSError *error){

[ self performSelectorOnMainThread : @selector (handleDeviceMotion:) withObject :motion waitUntilDone : YES ];

//开始摄像头

if ( self . session ) {

[ self . session startRunning ];

[self. motionManager stopDeviceMotionUpdates];

self. motionManager = nil;

[ self . session stopRunning ];

使用new来创建对象,系统会直接开辟好内存,调用init方法来初始化对象. 使用alloc和init方法则是首先系统会给变量分配内存,而后调用Init 方法来进行初始化.New方法是这个方法的概括. 1.在实际开发中很少会用到new,... AVCaptureDevice 主要是用来获取手机 相机 的属性 使用的时候必须引用AVFoundation.framework包,导入头文件<AVFoundation/AVFoundation.h> 当要生成二维码时,需要对 info.plist文件中添加相应的key和value 也可右键点击以 Source Code形式打开,添加如下:<key>NSPhotoLibraryUsageDes dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_async(queue , ^{ //后台线程 _captureSession stopRunning dispatch 1.先释放。 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 方法里面首先调用 Discussion This method is used to start the flow of data from the inputs to the outputs connected to the AVCaptureSession instance that is the receiver. Thi... 今天我们学习的是CoreMotion框架中的加速计和陀螺仪。 通过CoreMotion框架提供的加速计来获取 设备 当前的加速度数据、陀螺仪数据、所处的磁场以及 设备 的方位等信息。 对于 iOS 应用开发者来说,开发传感器应用十分简单,CoreMotion框架的核心API就是CMMotionManager。 开发者只要创建一个CMMotionManager对象,接下来即可采用定时器周期 iphone小伙伴们你们升级了iphone吗?听说最新的 ios 12有了全新的功能哦,小编挑选3项最实用的介绍下。(1)iPhone快速释放内存,瞬间流畅起来也许是升级 iOS 9之后吧,苹果也开始像安卓手机一样学会卡了。那么要想让 iPhone重新流畅起来,大家懂的,那就是释放iPhone的RAM(运行内存),方法如下:长按电源键,直到“滑动来关机”的滑动条出现,这时候不需要关机,只要长按Home...