IOS如何查看自动对焦是否还在进行?

How to check the auto focus is still going on in IOS?

我创建了相机应用程序,现在我想做的是需要检查对焦是连续进行还是停止。

这是我试过的:

 NSError *error=nil;
    //Capture Session
    AVCaptureSession *session = [[AVCaptureSession alloc]init];
    session.sessionPreset = AVCaptureSessionPresetPhoto;

    //Add device
    AVCaptureDevice *device =
    [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
    // SETUP FOCUS MODE
    if ([device lockForConfiguration:nil]) {

        [device setFocusMode:AVCaptureFocusModeAutoFocus];

        [device unlockForConfiguration];
    }
    else{
        NSLog(@"error while configuring focusMode");
    }
    NSLog(@"%@" ,NSStringFromCGPoint(device.focusPointOfInterest));
    if ([device isFocusModeSupported:AVCaptureFocusModeContinuousAutoFocus] && [device lockForConfiguration:&error]){
        [device setFocusMode:AVCaptureFocusModeContinuousAutoFocus];
        if ([device isFocusPointOfInterestSupported])
            [device setFocusPointOfInterest:CGPointMake(0.5f,0.5f)];
        [device unlockForConfiguration];
    }
    else{
        NSLog(@"problem ");
    }

    //Input
    AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device error:nil];

    if (!input)
    {
        NSLog(@"No Input");
    }

    [session addInput:input];

    //Preview Layer
    AVCaptureVideoPreviewLayer *previewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session];
    UIView *myView = viewForCamera;
    previewLayer.frame = myView.bounds;
    previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
    [viewForCamera.layer addSublayer:previewLayer];

    //Start capture session
    [session startRunning];

我搜索了有没有委托方法但是我没有得到,请帮助我解决这个问题。

我用 sample.I 谷歌搜索得到了 solution.I 试过并得到了很多答案。

We must set the point of interest before calling setFocusMode

在你的编码中你没有调用兴趣点

if ([device isFocusPointOfInterestSupported])
{
   [device setFocusPointOfInterest:CGPointMake(0.5f,0.5f)];
   [device setFocusMode:AVCaptureFocusModeAutoFocus];
             //OR
   [device setFocusMode:AVCaptureFocusModeContinuousAutoFocus];
   [device unlockForConfiguration];
}

AutoFocus is not working

然后判断是否自动对焦

Auto Focus Observer