Explorar o código

云端录制,未完成

zouxuan %!s(int64=3) %!d(string=hai) anos
pai
achega
42cefb56ff

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

@@ -266,7 +266,7 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
         RList<UserInfo> list = redissonClient.getList(LIVE_ROOM_USER_LIST.replace(ROOM_UID, roomUid));
         UserInfo userInfo = getUserInfo(userId);
         list.add(userInfo);
-        //录制视频
+        //如果是主播,录制视频
         imFeignService.startRecord(roomUid);
     }
 

+ 3 - 0
mec-im/src/main/java/com/ym/pojo/RecordConfig.java

@@ -18,4 +18,7 @@ public class RecordConfig {
         this.hostUserId = speakerId.toString();
         this.hostStreamId = speakerId.toString();
     }
+
+    public RecordConfig() {
+    }
 }

+ 21 - 3
mec-im/src/main/java/com/ym/service/Impl/LiveRoomServiceImpl.java

@@ -2,9 +2,11 @@ package com.ym.service.Impl;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ym.http.HttpHelper;
 import com.ym.mec.biz.dal.dao.ImLiveBroadcastRoomDao;
 import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoom;
+import com.ym.mec.biz.dal.entity.TenantAssetsInfo;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.im.IMHelper;
 import com.ym.pojo.IMApiResultInfo;
@@ -87,11 +89,13 @@ public class LiveRoomServiceImpl implements LiveRoomService {
     @Override
     public void startRecord(String roomId) throws Exception {
         //是否需要录制视频
+
         log.error("开始录制直播:roomId : {} ",roomId);
         JSONObject paramJson = new JSONObject();
         paramJson.put("sessionId",getRoomSessionId(roomId));
-        ImLiveBroadcastRoom imLiveBroadcastRoom = imLiveBroadcastRoomDao.selectById(roomId);
-        paramJson.put("config",new RecordConfig(imLiveBroadcastRoom.getSpeakerId()));
+//        ImLiveBroadcastRoom imLiveBroadcastRoom = imLiveBroadcastRoomDao.selectOne(new QueryWrapper<ImLiveBroadcastRoom>()
+//                .eq("room_uid_", roomId));
+        paramJson.put("config",new RecordConfig());
         String body = paramJson.toJSONString();
         HttpURLConnection conn = httpHelper.createIMRtcPostHttpConnection("/rtc/record/start.json", "application/json",roomId);
         httpHelper.setBodyParameter(body, conn);
@@ -102,6 +106,19 @@ public class LiveRoomServiceImpl implements LiveRoomService {
     }
 
     @Override
+    public void stopRecord(String roomId) throws Exception {
+        JSONObject paramJson = new JSONObject();
+        paramJson.put("sessionId",getRoomSessionId(roomId));
+        String body = paramJson.toJSONString();
+        HttpURLConnection conn = httpHelper.createIMRtcPostHttpConnection("/rtc/record/stop.json", "application/json",roomId);
+        httpHelper.setBodyParameter(body, conn);
+        httpHelper.returnResult(conn, body);
+        RBucket<String> bucket = redissonClient.getBucket("sessionId:" + roomId);
+        bucket.delete();
+        log.info("结束录制直播 roomId :{},{}",roomId,httpHelper.returnResult(conn, body));
+    }
+
+    @Override
     public void recordSync(RecordNotify recordNotify) {
         log.info("recordSync recordNotify:{}",recordNotify);
     }
@@ -123,7 +140,8 @@ public class LiveRoomServiceImpl implements LiveRoomService {
             JSONObject resultObject = JSONObject.parseObject(returnResult);
             String code = resultObject.get("code").toString();
             if("200".equals(code)){
-                bucket.set(resultObject.get("sessionId").toString());
+                sessionId = resultObject.get("sessionId").toString();
+                bucket.set(sessionId);
             }else {
                 log.error("获取sessionId失败 returnResult:{}",returnResult);
                 throw new BizException("获取sessionId失败");

+ 9 - 0
mec-im/src/main/java/com/ym/service/LiveRoomService.java

@@ -23,6 +23,15 @@ public interface LiveRoomService {
     void startRecord(String roomId) throws Exception;
 
     /**
+    * @description: 结束录制直播
+     * @param roomId
+    * @return void
+    * @author zx
+    * @date 2022/2/25 10:00
+    */
+    void stopRecord(String roomId) throws Exception;
+
+    /**
     * @description: 录制状态回调
      * @param recordNotify
     * @return void