2012-07-31 1 views
1

J'essaie de verrouiller l'exposition avec le point d'exposition, mais il semble que cela ne fonctionne pas lorsque j'ai essayé dans mon appareil. Bien que l'application Appareil photo fonctionne lorsque vous appuyez longuement sur l'écran pour verrouiller l'exposition et la mise au point, mais lorsque vous essayez avec ma propre application avec les lignes de code suivantes, cela ne fonctionne pas. Ai-je manqué quelque chose sur la configuration?Verrouillage du mode d'exposition de l'appareil de capture de l'appareil photo

if ([_captureInput.device isExposureModeSupported:AVCaptureExposureModeLocked] && [_captureInput.device lockForConfiguration:NULL] && [_captureInput.device isExposurePointOfInterestSupported]) 
{ 
[_captureInput.device setExposurePointOfInterest:pointOfInterest]; 
[_captureInput.device setExposureMode:AVCaptureExposureModeLocked]; 
[_captureInput.device unlockForConfiguration]; 
} 

Répondre

1

un exemple de la façon de verrouiller la configuration si vous deviez changer le mode flash par exemple est comme ceci:

AVCaptureDevice *temp = [[[[self captureSession] inputs] lastObject] device]; 

if ([temp isFlashModeSupported:AVCaptureFlashModeOn]) { 
     NSError *error; 
     bool locked = [temp lockForConfiguration:&error]; 
     if (locked) { 
      switch (self.flashMode.intValue) { 
       case 0: // Off 
        [temp setFlashMode:AVCaptureFlashModeOff]; 
        break; 
       case 1: // On 
        [temp setFlashMode:AVCaptureFlashModeOn]; 
        break; 
       case 2: // Auto 
        [temp setFlashMode:AVCaptureFlashModeAuto]; 
        break; 

       default: 
        break; 
      } 
     } else { 
      NSLog(@"Could not lock for configuration"); 
     } 

    } 

Edit: Ceci est juste un exemple (mais il devrait fonctionner), Comme vous pouvez le voir, je reçois le périphérique de capture d'une manière très étrange parce que je ne l'enregistre nulle part si vous l'aviez sauvegardé ou si vous le manipuliez différemment, cela fonctionnerait aussi.

+0

Merci. En fait, je l'ai essayé au flambeau et au flash et ça a marché. Je me demande pourquoi il ne fonctionne pas sur l'exposition comme dans l'application de l'appareil photo que la luminosité/contraste change lorsque vous appuyez longuement sur l'écran et verrouille la mise au point automatique/exposition automatique. –

+0

Vous testez pour 3 conditions dans votre if. essayez-les séparément avec un drapeau et voyez si tout échoue. aussi NSLOG l'erreur param dans le verrou pour voir pourquoi ce n'est pas verrouillé, sinon être verrouillé est le problème. Je me souviens de quelque chose comme il n'est pas possible de verrouiller si c'est déjà verrouillé ou quelque chose. – Pochi

+0

J'ai aussi essayé de le faire avec NSLog et cela montre avec le journal que l'appareil est verrouillé avec le point d'exposition d'intérêt. La chose étrange est quand la lumière de fond a changé, l'exposition a également changé ce qui signifie qu'il n'est pas réellement verrouillé. Et lorsque vous avez modifié la zone de frappe pour les points d'intérêt, rien ne se passe sur l'écran d'aperçu. –

Questions connexes