iOS 相机手动对焦



AVCaptureDevice的方法,之前查了网上和stackoverflow上,没有,于是自己试着做了下,成功了,分享下。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
//实例化
AVCaptureDevice  *captureDevice = [[AVCaptureDevice alloc] init];
//先进行判断是否支持控制对焦
if (captureDevice.isFocusPointOfInterestSupported &&[captureDevice.isFocusModeSupported:AVCaptureFocusModeAutoFocus]) {
         
         NSError *error = nil ;
//对cameraDevice进行操作前,需要先锁定,防止其他线程访问,
         [ self .recorder.cameraDevice lockForConfiguration:&error];
         [ self .recorder.cameraDevice setFocusMode:AVCaptureFocusModeAutoFocus];
         [ self .recorder.cameraDevice setFocusPointOfInterest:CGPointMake(pointX,pointY)];
//操作完成后,记得进行unlock。
         [ self .recorder.cameraDevice unlockForConfiguration];
     }

 由于我做的的视频拍摄时手动对焦,

用了TapGestureRecognizer 的实例,添加到self.view上,

获得点击的坐标,然后用坐标对屏幕的尺寸进行数据处理,应为focusPointOfInterest是从左上到右下(0~1,0~1)范围内

比如点击的点tap.x  和tap.y

竖屏时候对焦点应是(tap.x/self.view.frame.size.width, tap.y/self.view.frame.size.height)

 

另外,这样或许对用户来说不够只管,看过系统相机都知道,点击对焦点时,有个方块缩小

我的实现方法是,用了uiview的实例,边框黄色,2像素寛,背景色clearColor,先添加到self.view上,大小为0,tap手势的方法里,设置uiview大小为40,然后加个动画设置uiview大小为20,这样当你点击屏幕某处的时候,有个黄色框缩小,同时,镜头进行对焦。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值