iOS设备相机销毁
2016-07-12 11:23
543 查看
//初始化相机
//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];
//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];
相关文章推荐
- 如何在ios工程中用oc调用js算法
- iOS中使用zxing实现扫一扫
- iOS屏幕适配
- IOS中复制对象的用法及深拷贝和浅拷贝详解
- iiOS 上线后去掉打印
- IOS中消息传递的8种方式
- iOS 视频旋转及平移详解
- iOS开发笔记--iOS动画(Core Animation)总结
- iOS日常笔记
- IOS封装自定义Cell方法
- IOS Dev Intro - Variable property attributes or Modifiers in iOS
- iOS: 音效和音乐的播放,封装的工具类
- iOS设计模式(十) 享元模式
- IOS Dev Intro - Memory Management
- 《Motion Design for iOS》(三十四)
- 谈谈iOS Animation
- 李洪强iOS之Foundation框架—字符串
- iOS动画(Core Animation)总结
- ios常用的框架
- IOS 中获取手机的 udid 和 imei 号