首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DJI Gimbal -如何在按下硬件按钮时得到回调

DJI Gimbal -如何在按下硬件按钮时得到回调
EN

Stack Overflow用户
提问于 2022-06-23 13:25:19
回答 1查看 70关注 0票数 0

我正在使用Android Camera2 SDK开发一个摄像头应用程序,它有开始/停止记录的按钮,还有缩放功能。我已经集成了DJI移动SDK,并使用从开发人员帐户生成的API密钥进行了注册。当我启动应用程序时,我会收到来自DJISDKManager.SDKManagerCallback()#onRegister()的一个DJISDKManager.SDKManagerCallback()#onRegister(),Gimbal通过蓝牙连接到手机上。

现在的问题是,我如何能够拦截硬件按钮按事件从万向节?例如,如果我按下Gimbal的硬件记录按钮,相机应用程序就会开始录制。

我试过这样的方法,但不管用。在按下硬件按钮时,我找不到任何关于如何接收回调的文档。

代码语言:javascript
复制
OSMOMobileHandheldController osmoMobileHandheldController = new OSMOMobileHandheldController();
    osmoMobileHandheldController.setHardwareStateCallback(hardwareState -> {

        switch (hardwareState.getRecordAndShutterButtons()) {
            case IDLE: {
                Log.e(TAG, "getRecordAndShutterButtons IDLE");
                break;
            }
            case RECORD_CLICK: {
                Log.e(TAG, "getRecordAndShutterButtons RECORD_CLICK");
                break;
            }
            case SHUTTER_CLICK: {
                Log.e(TAG, "getRecordAndShutterButtons SHUTTER_CLICK");
                break;
            }
            case SHUTTER_LONG_CLICK: {
                Log.e(TAG, "getRecordAndShutterButtons SHUTTER_LONG_CLICK");
                break;
            }
            default: {
                Log.e(TAG, "getRecordAndShutterButtons UNKNOWN");
            }
        }
        
        switch (hardwareState.getZoomState()) {
            case IDLE: {
                Log.e(TAG, "getZoomState IDLE");
                break;
            }
            case ZOOM_IN: {
                Log.e(TAG, "getZoomState ZOOM_IN");
                break;
            }
            case ZOOM_OUT: {
                Log.e(TAG, "getZoomState ZOOM_OUT");
                break;
            }
            default: {
                Log.e(TAG, "getTriggerButton UNKNOWN");
            }
        }

    });
EN

回答 1

Stack Overflow用户

发布于 2022-06-24 09:40:41

你不能只创建一个对象。您必须调用sdk才能获得正确的实例。您只创建了一个没有连接到任何东西的对象。

https://developer.dji.com/api-reference/android-api/Components/SDKManager/DJISDKManager.html#djisdkmanager_product_inline

因此,类似于: DJISDKManager.getInstance().getProduct().getHandheld()将给您一个连接到api的对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72730975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档