//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...