1

Я создал приложение для камеры теперь то, что я хочу сделать, это проверить, постоянно ли он фокусируется или останавливается.Как проверить автофокус все еще происходит в 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]; 

Я искал, есть ли метод делегата, но я не получил, пожалуйста, помогите мне решить эту проблему.

+0

Пожалуйста, укажите причину простоя, так что я обновлю свой вопрос –

+0

Я помогу вам – user3182143

+0

Выше вашего коллапса? – user3182143

ответ

2

У меня есть решение. Я попробовал с sample.I googled и прошел множество ответов.

Мы должны установить точку интереса перед вызовом 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 фокус идет или нет

Auto Focus Observer

+0

thank bro его работы сейчас –

+0

Welcome brother – user3182143

+0

Где находится эта группа? – user3182143