Фокусировка камеры iPhone - PullRequest
       27

Фокусировка камеры iPhone

3 голосов
/ 09 ноября 2011

Я использовал приведенный ниже код для фокусировки камеры iphone.Но это не работает.Я беру этот код из примера кода Apple AVCam.Я делаю что-то не так?Есть ли способ определить, фокусировался ли iPhone?

-(void) focusAtPoint:(CGPoint)point   
{
    AVCaptureDevice *device =  [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];;

    if (device != nil) {            
        if ([device isFocusPointOfInterestSupported] && [device isFocusModeSupported:AVCaptureFocusModeAutoFocus]) {

            NSError *error;

            if ([device lockForConfiguration:&error]) {             
                [device setFocusPointOfInterest:point];             
                [device setFocusMode:AVCaptureFocusModeAutoFocus];              
                [device unlockForConfiguration];                
            } else {                
                NSLog(@"Error in Focus Mode");
            }        

        }
    }
}

1 Ответ

7 голосов
/ 04 мая 2012

Точка для [AVCaptureDevice setFocusPointOfInterest:] не совпадает с точкой касания вида, но является точкой от 0,0 до 1,1 (см. Документы).Итак, вы должны сделать:

CGPoint point = [touch locationInView:self.cameraView];
point.x /= self.cameraView.frame.size.width;
point.y /= self.cameraView.frame.size.height;
[self focusAtPoint:point];
...