Bläddra i källkod

fix直播录制开启

Eric 2 år sedan
förälder
incheckning
b87f8552b8

+ 17 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveBroadcastRoomServiceImpl.java

@@ -44,6 +44,7 @@ import com.ym.mec.util.http.HttpUtil;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.joda.time.DateTime;
 import org.redisson.api.RBucket;
 import org.redisson.api.RLock;
 import org.redisson.api.RMap;
@@ -59,6 +60,7 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.io.Serializable;
+import java.text.MessageFormat;
 import java.util.*;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.TimeUnit;
@@ -613,7 +615,7 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
             message.setToChatRoomId(roomUid);
             message.setObjectName(ImRoomMessage.FORCED_OFFLINE);
 
-            SysUser sysUser = sysUserFeignService.queryUserById(speakerId);
+            SysUser sysUser = sysUserFeignService.queryUserInfo();
             if (Objects.nonNull(sysUser)) {
 
                 // 发送用户信息
@@ -1011,12 +1013,19 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
                     return;
                 }
 
-                pluginService.rtcRoomRecordStart(RTCRequest.RecordStart.builder()
+                // 直播开始时间
+                DateTime dateTime = new DateTime(imLiveBroadcastRoomVo.getLiveStartTime());
+
+                RTCRoom.RecordResp recordResp = pluginService.rtcRoomRecordStart(RTCRequest.RecordStart.builder()
+                        .startTime(dateTime.plusMillis(5).getMillis() / 1000)
+                        .endTime(dateTime.plusDays(1).getMillis() / 1000)
+                        .steamName(MessageFormat.format("{0}_{1}", imLiveBroadcastRoomVo.getRoomUid(), String.valueOf(imLiveBroadcastRoomVo.getSpeakerId())))
                         .sessionId(rtcRoom.getSessionId())
-                         .config(RTCRequest.RecordConfig.builder()
+                        .config(RTCRequest.RecordConfig.builder()
                                 .videoResolution(videoResolution)
                                 .build())
                         .build());
+                log.info("startLive 直播录录开启: recordResp={}", JSON.toJSONString(recordResp));
             } catch (Exception e) {
                 log.error("startRecord error: {}", e.getMessage());
             }
@@ -1078,6 +1087,11 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
                     return;
                 }
 
+                // 若返回的sessionId为空,则手动查询录制任务taskId
+                if (StringUtils.isBlank(rtcRoom.getSessionId())) {
+                    // FIXME: 获取腾讯云直播录制任务Id
+                }
+
                 pluginService.rtcRoomRecordStop(rtcRoom.getSessionId());
             } catch (Exception e) {
                 log.error("stopRecord error: {}", e.getMessage());