| 
					
				 | 
			
			
				@@ -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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             //推送直播开始消息 
			 |