您的位置:首页 > 移动开发 > IOS开发

iOS使用AVCaptureSession自定义相机

2016-01-23 15:50 330 查看
关于iOS调用摄像机来获取照片,通常我们都会调用UIImagePickerController来调用系统提供的相机来拍照,这个控件非常好 用。但是有时UIImagePickerController控件无法满足我们的需求,例如我们需要更加复杂的OverlayerView,这时候我们就 要自己构造一个摄像机控件了。

这需要使用AVFoundation.framework这个framework里面的组件了,所以我们先要导入这个头文件,另外还需要的组件官方文档是这么说的:

● An instance of AVCaptureDevice to represent the input device, such as a camera or microphone

● An instance of a concrete subclass of AVCaptureInput to configure the ports from the input device

● An instance of a concrete subclass of AVCaptureOutput to manage the output to a movie file or still image

● An instance of AVCaptureSession to coordinate the data flow from the input to the output

这里我只构造了一个具有拍照功能的照相机,至于录影和录音功能这里就不加说明了。

总结下来,我们需要以下的对象:

?
我的习惯是在init方法执行的时候创建这些对象,然后在viewWillAppear方法里加载预览图层。现在就让我们看一下代码就清楚了。

?
这是获取前后摄像头对象的方法

?
接下来在viewWillAppear方法里执行加载预览图层的方法

?
注意以下的方法,在viewDidAppear和viewDidDisappear方法中启动和关闭session

?
接着我们就来实现切换前后镜头的按钮,按钮的创建我就不多说了

?
这是切换镜头的按钮方法

?
这是拍照按钮的方法

这样自定义照相机的简单功能就完成了,如果你想要再添加其他复杂的功能,可以参考一下下面这篇文章,希望对你们有所帮助。
http://course.gdou.com/blog/Blog.pzs/archive/2011/12/14/10882. href="http://www.2cto.com/kf/qianduan/css/" target=_blank>html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: