2015-08-26 5 views
4

Я пытаюсь преобразовать свой код для обнаружения фокуса камеры с Xcode/Swift на Xamarin/C#. [Не офисная политика велика?] Кажется, она не работает, и я не знаю, почему.Как преобразовать этот код для определения фокуса камеры?

Swift Code:

private var _doneFocusing = false 
let kFocusKeyPath = "adjustingFocus" 

// this line in my startCamera method to watch for focus: 
captureDevice.addObserver(self, forKeyPath:kFocusKeyPath, options: NSKeyValueObservingOptions.New, context: nil) 


override func observeValueForKeyPath(keyPath: String, ofObject object: AnyObject, change: [NSObject : AnyObject], context: UnsafeMutablePointer<Void>) { 
    if keyPath == kFocusKeyPath { 
     if let changeValue = change[NSKeyValueChangeNewKey] as? NSNumber { 
      var adjustingFocus = (changeValue == 1) 
      if adjustingFocus { 
       _doneFocusing = false 
      } else { 
       _doneFocusing = true 
      } 
     } 
    } 
} 

C# код. Метод ObserveValue вообще не вызывается.

private bool _doneFocusing = false; 
private const string kFocusKeyPath = "FocusKeyPath"; 

// this line in my startCamera method to watch for focus: 
_captureDevice.AddObserver(this, kFocusKeyPath, NSKeyValueObservingOptions.New, IntPtr.Zero); 


public override void ObserveValue(NSString keyPath, NSObject ofObject, NSDictionary change, IntPtr context) 
{ 
    System.Diagnostics.Debug.WriteLine(keyPath); 

    if (keyPath == kFocusKeyPath) 
    { 
     var changeValue = change.ValueForKey(ChangeNewKey) as NSNumber; 
     if (changeValue == null) 
     { 
      return; 
     } 
     var adjustingFocus = (changeValue.Int16Value == 1); 
     if (adjustingFocus) 
     { 
      _doneFocusing = false; 
     } 
     else 
     { 
      _doneFocusing = true; 
     } 

    } 
} 

Есть ли что-то, что мне не хватает, чтобы получить право работать?

+0

Спасибо, за быстрый код. –

ответ

2

Не знаете, почему я изменил константу keyPath, но в этом была проблема.

Ключ должен специально быть «adjustingFocus»

 Смежные вопросы

  • Нет связанных вопросов^_^