github下载链接:https://github.com/SSYSSK/camera2
关于视频捕捉、录制、切换摄像头在上一篇博客有详细的讲解(https://blog.csdn.net/s12117719679/article/details/100513400),
这里就不做过多解析
聚焦的关键代码如下:
点击手势,根据点击的位置转换成相机的聚焦点坐标
-(void)handleSingleTap:(UIGestureRecognizer *)recognizer {
CGPoint point = [recognizer locationInView:self];
[self runBoxAnimationOnView:self.focusBox point:point];
if(self.delegate){
[self.delegate tappedToFocusAtPoint:point];
}
}
相机聚焦实现
-(void)tappedToFocusAtPoint:(CGPoint)point {
//[self.activeCamera isFocusPointOfInterestSupported] 是否支持对焦 iPhone6以上才支持
//[self.activeCamera isFocusPointOfInterestSupported] 是否支持自动对焦模式
NSLog(@"对焦%f",point.x);
NSLog(@"对焦%f",point.y);
if ([self.activeCamera isFocusPointOfInterestSupported] && [self.activeCamera isFocusModeSupported:AVCaptureFocusModeAutoFocus]) {
// 因为设备有多个,所以需要锁定
if([self.activeCamera lockForConfiguration:nil]){
// 设置聚焦位置
self.activeCamera.focusPointOfInterest = point;
// 设置对焦模式
self.activeCamera.focusMode = AVCaptureFocusModeAutoFocus;
// 释放锁
[self.activeCamera unlockForConfiguration];
}
}
}
对焦的模式选择:
AVCaptureFocusModeLocked 关闭对焦
AVCaptureFocusModeAutoFocus 自动对焦
AVCaptureFocusModeContinuousAutoFocus 自动连续对焦