2013-01-29 30 views

答えて

8

doc

によると、あなたは、デバイス が現在注力しているかどうかを判断するためにadjustingFocusプロパティを使用することができます。デバイスが開始してフォーカスを停止するときに通知されるように、key-value observingを使用してプロパティを確認できます。初期設定で

5

あなたがフォーカスモードの設定を変更する場合は、次のように、あなたは デフォルトの設定に戻すことができます

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

、その後:

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

ありがとう@ alexi-akl!これは私が行方不明だったコードでした::) – cdescours

+0

私の答えは助けてくれてうれしかった:) @cdescours –

0

私はリンゴ(優秀)を読んで好きではない私のような人のためのシュバンクの答えに展開することがメリットだと思いますAVCaptureDeviceが露出を調整している間に来たフレームを破棄するためのいくつかの目的を示唆する文書、ホワイトポイントなどがあります。

関連する問題