2013-01-29 9 views

Antwort

8

Nach doc

können Sie die adjustingFocus Eigenschaft verwenden, um zu bestimmen, ob ein Gerät zur Zeit konzentriert. Sie können die Eigenschaft unter Verwendung von key-value observing beobachten, um benachrichtigt zu werden, wenn ein Gerät anfängt zu fokussieren.

Wenn Sie die Fokusmodus-Einstellungen zu ändern, können Sie diese in die Standardkonfiguration zurück, wie folgt:

5

In der Initialisierung:

[[[captureManager videoInput] device] addObserver:self forKeyPath:@"adjustingFocus" options:NSKeyValueObservingOptionNew context:nil]; 

und dann:

bool focusing = false; 
bool finishedFocus = false; 
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context 
{ 
    //[super observeValueForKeyPath:keyPath ofObject:object change:change context:context]; 
    if([keyPath isEqualToString:@"adjustingFocus"]){ 
     BOOL adjustingFocus = [ [change objectForKey:NSKeyValueChangeNewKey] isEqualToNumber:[NSNumber numberWithInt:1] ]; 

     if (adjustingFocus) { 
      focusing=true; 
     } 
     else { 
      if (focusing) { 
       focusing = false; 
       finishedFocus = true; 
      } 
     } 
    } 
} 
+0

Danke @ alexi-akl! Dies war der Code, den ich vermisste ... :) – cdescours

+0

froh, dass meine Antwort hilfreich war :) @cdescours –

0

Ich schätze, es lohnt sich, auf Shubhank Antwort für diejenigen wie mich zu erweitern, die nicht gerne den Apfel lesen (ausgezeichnet) Dokumentation, die für einige Zwecke vorschlägt, die Rahmen zu verwerfen, die kamen, während das AVCaptureDevice Belichtung justierte und möglicherweise whitepoint

Verwandte Themen