|
@@ -8,8 +8,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
|
|
import com.google.common.collect.Lists;
|
|
|
+import com.microsvc.toolkit.middleware.live.LivePluginContext;
|
|
|
+import com.microsvc.toolkit.middleware.live.LivePluginService;
|
|
|
import com.microsvc.toolkit.middleware.live.impl.TencentCloudLivePlugin;
|
|
|
import com.microsvc.toolkit.middleware.live.message.LiveRoomConfig;
|
|
|
+import com.microsvc.toolkit.middleware.live.message.RTCRoom;
|
|
|
import com.ym.mec.auth.api.client.SysUserFeignService;
|
|
|
import com.ym.mec.auth.api.entity.SysUser;
|
|
|
import com.ym.mec.biz.dal.dao.ImLiveBroadcastRoomDao;
|
|
@@ -97,6 +100,9 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
|
@Autowired
|
|
|
private TencentCloudLivePlugin tencentCloudLivePlugin;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private LivePluginContext livePluginContext;
|
|
|
+
|
|
|
//待替换的变量
|
|
|
public static final String USER_ID = "${userId}";
|
|
|
public static final String ROOM_UID = "${roomUid}";
|
|
@@ -978,6 +984,22 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
|
//开始录制视频
|
|
|
try {
|
|
|
imFeignService.startRecord(roomUid, videoResolution);
|
|
|
+
|
|
|
+ // 查询房间信息
|
|
|
+ ImLiveBroadcastRoomVo imLiveBroadcastRoomVo = getImLiveBroadcastRoomVo(roomUid);
|
|
|
+ if (Objects.isNull(imLiveBroadcastRoomVo)) {
|
|
|
+ log.info("opsRoom>>>> startRecord error roomUid: {}", roomUid);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ LivePluginService pluginService = livePluginContext.getPluginService(imLiveBroadcastRoomVo.getServiceProvider());
|
|
|
+ RTCRoom rtcRoom = pluginService.rtcRoomInfo(roomSpeakerInfo.getRoomUid());
|
|
|
+ if (rtcRoom == null) {
|
|
|
+ log.info("startRecord>>>> rtcRoom is null");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ pluginService.rtcRoomRecordStop(rtcRoom.getSessionId());
|
|
|
+ // pluginService.rtcRoomRecordStart(roomUid, videoResolution);
|
|
|
} catch (Exception e) {
|
|
|
log.error("startRecord error: {}", e.getMessage());
|
|
|
}
|
|
@@ -1024,7 +1046,22 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
|
if (whetherVideoFlag && stateFlag) {
|
|
|
try {
|
|
|
//停止录制视频
|
|
|
- imFeignService.stopRecord(roomSpeakerInfo.getRoomUid());
|
|
|
+ // imFeignService.stopRecord(roomSpeakerInfo.getRoomUid());
|
|
|
+
|
|
|
+ // 查询房间信息
|
|
|
+ ImLiveBroadcastRoomVo imLiveBroadcastRoomVo = getImLiveBroadcastRoomVo(roomSpeakerInfo.getRoomUid());
|
|
|
+ if (imLiveBroadcastRoomVo == null) {
|
|
|
+ log.warn("closeLive imLiveBroadcastRoomVo is null");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ LivePluginService pluginService = livePluginContext.getPluginService(imLiveBroadcastRoomVo.getServiceProvider());
|
|
|
+ RTCRoom rtcRoom = pluginService.rtcRoomInfo(roomSpeakerInfo.getRoomUid());
|
|
|
+ if (rtcRoom == null) {
|
|
|
+ log.warn("closeLive rtcRoom is null");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ pluginService.rtcRoomRecordStop(rtcRoom.getSessionId());
|
|
|
} catch (Exception e) {
|
|
|
log.error("stopRecord error: {}", e.getMessage());
|
|
|
}
|
|
@@ -1126,7 +1163,10 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
|
SysUser sysUser = getSysUser(room.getSpeakerId());
|
|
|
createSpeakerInfo(room, sysUser);
|
|
|
//去融云创建房间
|
|
|
- imFeignService.createLiveRoom(room.getRoomUid(), room.getRoomTitle());
|
|
|
+ LivePluginService pluginService = livePluginContext.getPluginService(room.getServiceProvider());
|
|
|
+ pluginService.chatRoomCreate(room.getRoomUid(),room.getRoomTitle(),sysUser.getId().toString());
|
|
|
+
|
|
|
+ // imFeignService.createLiveRoom(room.getRoomUid(), room.getRoomTitle());
|
|
|
//推送预约直播间消息
|
|
|
imLiveRoomReservationService.push(room);
|
|
|
//推送直播开始消息
|