【问题标题】:Is there a way to listen for aspect ratio change in the dji sdk?有没有办法监听 dji sdk 中的纵横比变化?
【发布时间】:2018-08-10 09:07:38
【问题描述】:

有没有办法通过委托或事件侦听器在目标 c 的 dji-sdk 中侦听图像大小/纵横比的变化?

我的场景是,当纵横比改变时,无论是通过 DUXCameraSettingsController 还是通过运行 dji go 应用程序的辅助遥控器,我都找不到适应视频源的当前视口。

我正在使用 DJI-SDK-iOS 4.6.1、DJI-UXSDK-iOS 4.6.0 和 Mavic Pro 无人机。

【问题讨论】:

    标签: dji-sdk


    【解决方案1】:

    您可以通过几种不同的方式来监听宽高比更改事件。纯粹使用 SDK 的第一种方法是执行以下操作:

    1.) 我们创建我们想要收听的键。

    DJIFlightControllerKey *aspectRatioKey = [DJICameraKey keyWithParam:DJICameraParamPhotoAspectRatio];

    2.) 从那里我们在键上注册一个侦听器,如下所示:

    [[DJISDKManager keyManager] startListeningForChangesOnKey: aspectRatioKey withListener:self andUpdateBlock:^(DJIKeyedValue * _Nullable oldValue, DJIKeyedValue * _Nullable newValue) { }];
    

    3.) 您可以通过以下方式在更新块中获取新的宽高比:(DJICameraPhotoAspectRatio)newValue.unsignedIntegerValue

    关于这种方法需要注意的一点是,它在更新之前不会返回 aspectRatio 的当前值,因此如果您需要当前值,则需要在此之前执行 getValueForKey。

    第二种方式使用UXSDK中声明的协议DUXObjectProtocol,也会立即返回key的当前值以及key更新的时候。

    1.) 让您想要接收更新的类符合 DUXObjectProtocol。

    2.) 在实现中,您现在必须实现 2 个方法:

    - (nonnull NSArray <__kindof DJIKey *> *)dependentKeys

    - (void)transformValue:(nonnull DUXSDKModelValue *)value forKey:(nonnull __kindof DJIKey *)key;

    3.) 在 dependedKeys 中,您返回一个包含您想要更新的任何键的数组,因此您可以返回:

    return @[[DJICameraKey keyWithParam:DJICameraParamPhotoAspectRatio]];

    4.) 在 transformValue:ForKey 内部:当它像这样更新时,您可以获取 aspectRatio 的值:

    if ([key.param isEqualToString: DJICameraParamPhotoAspectRatio]) {
        self.aspectRatio = (DJICameraPhotoAspectRatio)[value unsignedIntegerValue];
    }
    

    5.) 您也可以选择实现- (void)update 方法。此方法将在调用转换值后调用,因此您可以在此处编写逻辑来更新用户界面或其他任何内容。

    6.) 最后要做的是在你的类的初始化器中,它符合你需要调用的 DUXObjectProtocol:

    [[DUXSDKModel defaultSDKModel] registerDependentKeys:[self dependentKeys] forObject:self];

    在 dealloc 调用内部:

    [[DUXSDKModel defaultSDKModel] unregisterDependentKeysForObject:self];
    

    如果这有帮助,请告诉我!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-17
      • 2011-09-07
      • 2020-07-30
      • 1970-01-01
      相关资源
      最近更新 更多