我正在使用Android Camera2 SDK开发一个摄像头应用程序,它有开始/停止记录的按钮,还有缩放功能。我已经集成了DJI移动SDK,并使用从开发人员帐户生成的API密钥进行了注册。当我启动应用程序时,我会收到来自DJISDKManager.SDKManagerCallback()#onRegister()的一个DJISDKManager.SDKManagerCallback()#onRegister(),Gimbal通过蓝牙连接到手机上。
现在的问题是,我如何能够拦截硬件按钮按事件从万向节?例如,如果我按下Gimbal的硬件记录按钮,相机应用程序就会开始录制。
我试过这样的方法,但不管用。在按下硬件按钮时,我找不到任何关于如何接收回调的文档。
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");
}
}
});发布于 2022-06-24 09:40:41
你不能只创建一个对象。您必须调用sdk才能获得正确的实例。您只创建了一个没有连接到任何东西的对象。
因此,类似于: DJISDKManager.getInstance().getProduct().getHandheld()将给您一个连接到api的对象。
https://stackoverflow.com/questions/72730975
复制相似问题