zouxuan пре 5 година
родитељ
комит
470d967157
1 измењених фајлова са 33 додато и 2 уклоњено
  1. 33 2
      edu-im/edu-im-server/src/main/java/com/keao/edu/im/mec/im/IMHelper.java

+ 33 - 2
edu-im/edu-im-server/src/main/java/com/keao/edu/im/mec/im/IMHelper.java

@@ -278,7 +278,7 @@ public class IMHelper {
         IMApiResultInfo resultInfo = JSON.parseObject(httpHelper.returnResult(conn, body), IMApiResultInfo.class);
         if(resultInfo.getResultCode() == 10000){
             redisTemplate.opsForValue().set(resultInfo.getRecordId(),registrationId.toString());
-        }else {
+        }else if(resultInfo.getResultCode() == 47032 || resultInfo.getResultCode() == 47002){
             log.error("直播视频录制失败:body : {},resultInfo : {} 准备重试",body,resultInfo);
             int i = 1;
             while (i<=3){
@@ -288,7 +288,11 @@ public class IMHelper {
                 if (members == null || members.size() == 0) {
                     throw new IllegalArgumentException("Paramer 'roomMembers' is can not be null");
                 }
-                config.put("input",getInput(roomMembers));
+                if(1 == 3){
+                    config.put("input",getSignInput(roomMembers));
+                }else {
+                    config.put("input",getInput(roomMembers));
+                }
                 paramJson.put("config",config);
                 body = paramJson.toJSONString();
                 HttpURLConnection connection = httpHelper.createIMRtcPostHttpConnection("/rtc/record/start.json", "application/json", roomId);
@@ -384,6 +388,33 @@ public class IMHelper {
         return input;
     }
 
+    private JSONObject getSignInput(List<RoomMember> roomMembers){
+
+        JSONArray videos = new JSONArray();
+        int size = roomMembers.size();
+        boolean isMaster = false;
+        for (int i = 0; i < size; i++) {
+            RoomMember roomMember = roomMembers.get(i);
+            JSONObject video = new JSONObject();
+            video.put("userId",roomMember.getUid());
+            video.put("streamId",roomMember.getUid() + "_RongCloudRTC");
+            if(roomMember.getRole() == 3 || i == size - 1){
+                video.put("x",0);
+                video.put("y",0);
+                video.put("width",1);
+                video.put("height",1);
+                isMaster = true;
+            }
+            videos.add(video);
+            if (isMaster){
+                break;
+            }
+        }
+        JSONObject input = new JSONObject();
+        input.put("video",videos);
+        return input;
+    }
+
     /**
      * 结束录制
      * @param roomId