From f445f185beb8fcf1f6f66d633512dff92b20a7f9 Mon Sep 17 00:00:00 2001
From: zhaowenyu <35589726@qq.com>
Date: Wed, 10 Dec 2025 10:58:33 +0800
Subject: [PATCH] 2025-12-10 zwy 增加获取飞行器摄像头模式接口,从直播能力中获得,前提是飞行器要开机。

---
 ard-sample/src/main/java/com/ard/sample/manage/service/impl/LiveStreamServiceImpl.java |   26 ++++++++++++++++++++++----
 1 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/ard-sample/src/main/java/com/ard/sample/manage/service/impl/LiveStreamServiceImpl.java b/ard-sample/src/main/java/com/ard/sample/manage/service/impl/LiveStreamServiceImpl.java
index 5f6e426..28d5dff 100644
--- a/ard-sample/src/main/java/com/ard/sample/manage/service/impl/LiveStreamServiceImpl.java
+++ b/ard-sample/src/main/java/com/ard/sample/manage/service/impl/LiveStreamServiceImpl.java
@@ -118,7 +118,7 @@
         ServiceReply receiveReply = this.publishLiveStart(respTopic, liveParam);
 
         if (ResponseResult.CODE_SUCCESS != receiveReply.getResult()) {
-            return ResponseResult.error(LiveErrorEnum.find(receiveReply.getResult()));
+            return ResponseResult.error(receiveReply.getResult(), LiveErrorEnum.find(receiveReply.getResult()).getErrorMsg());
         }
 
         LiveUrlTypeEnum urlType = LiveUrlTypeEnum.find(liveParam.getUrlType());
@@ -158,9 +158,13 @@
                     }
                 }
                 else{
-                    live.setRtmpUrl(rtmpUrl);
-                    live.setRtspUrl(rtspUrl);
-                    live.setWebrtcUrl(webrtcUrl);
+                    i = ardVtduService.updateArdVtdu(vtdu);
+                    log.info("机场视频更新后 i:{}",i);
+                    if (i > 0) {
+                        live.setRtmpUrl(rtmpUrl);
+                        live.setRtspUrl(rtspUrl);
+                        live.setWebrtcUrl(webrtcUrl);
+                    }
                 }
                 //int i = ardVtduService.insertArdVtdu(vtdu);  // 保存到媒体表
 //                if (i > 0) {
@@ -178,6 +182,11 @@
                 return ResponseResult.error(LiveErrorEnum.URL_TYPE_NOT_SUPPORTED);
         }
 
+        // 开始直播时发送机场相机摄像头默认信息(舱外)到所有在线用户,只取机场sn,发机场的摄像头信息
+        if(data.getChildDeviceSn()!=null) {
+            String sn = data.getDeviceSn();
+            deviceService.setRedisCameraPosition(sn, 1);
+        }
         return ResponseResult.success(live);
     }
 
@@ -237,6 +246,11 @@
         ServiceReply receiveReply = this.publishLiveLensChange(respTopic, liveParam);
 
         if (ResponseResult.CODE_SUCCESS != receiveReply.getResult()) {
+            Integer code = receiveReply.getResult();
+            if(code == 325003) {
+                // 指令响应失败,请重试. 经查询官网,机场3为低配,飞行器不支持红外
+                return ResponseResult.error(325003000,LiveErrorEnum.COMMAND_FAILED.getErrorMsg()+"请确认无人机是否支持此功能!");
+            }
             return ResponseResult.error(LiveErrorEnum.find(receiveReply.getResult()));
         }
 
@@ -264,6 +278,10 @@
         if (ResponseResult.CODE_SUCCESS != receiveReply.getResult()) {
             return ResponseResult.error(LiveErrorEnum.find(receiveReply.getResult()));
         }
+        // 将切换相机摄像头信息到redis
+        Integer camera_position = liveParam.getCameraPosition();
+        String sn = responseResult.getData().getDeviceSn();
+        deviceService.setRedisCameraPosition(sn, camera_position);
 
         return ResponseResult.success();
     }

--
Gitblit v1.9.3