【发布时间】:2018-10-14 15:30:20
【问题描述】:
我已经想出了如何以编程方式控制云台,但我无法判断用户何时从控制器手动移动了云台。我在这里查看文档https://developer.dji.com/api-reference/android-api/Components/Gimbal/DJIGimbal_GimbalState.html
但我不知道如何实例化一个 GimbalState 对象,以便我可以读取云台的当前角度。有人知道怎么做吗?
【问题讨论】:
我已经想出了如何以编程方式控制云台,但我无法判断用户何时从控制器手动移动了云台。我在这里查看文档https://developer.dji.com/api-reference/android-api/Components/Gimbal/DJIGimbal_GimbalState.html
但我不知道如何实例化一个 GimbalState 对象,以便我可以读取云台的当前角度。有人知道怎么做吗?
【问题讨论】:
嗨@Trevor,这是我的建议:
1.获取云台实例:
Gimbal gimbal = DJISDKManager.getInstance().getProduct().getGimbal()
2.使用以下方法设置回调,返回云台状态:
gimbal.setStateCallback(new GimbalState.Callback() {
@Override
public void onUpdate(final GimbalState state) {
if (handler != null && !handler.hasMessages(UPDATE_MSG)) {
gimbalState = state;
handler.sendEmptyMessage(UPDATE_MSG);
} else {
DJILog.e(TAG,"too many events!");
}
}
})
注意:云台状态更新频率很高(10HZ),请尽量避免UI元素的阻塞。
【讨论】: