zhaowenyu
2025-12-08 4ccb6e629d3c39521435046e94d5bec927861247
ard-sample/src/main/java/com/ard/sample/manage/service/impl/LiveStreamServiceImpl.java
@@ -22,6 +22,7 @@
import com.ard.vtdu.domain.ArdVtdu;
import com.ard.vtdu.service.IArdMediaService;
import com.ard.vtdu.service.IArdVtduService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -40,6 +41,7 @@
 * @version 0.1
 * @date 2021/11/22
 */
@Slf4j
@Service
@Transactional
public class LiveStreamServiceImpl implements ILiveStreamService {
@@ -116,7 +118,7 @@
        ServiceReply receiveReply = this.publishLiveStart(respTopic, liveParam);
        if (ResponseResult.CODE_SUCCESS != receiveReply.getResult()) {
            return ResponseResult.error(LiveErrorEnum.find(receiveReply.getResult()));
            return ResponseResult.error(receiveReply.getResult(), LiveErrorEnum.find(receiveReply.getResult()).getErrorMsg());
        }
        LiveUrlTypeEnum urlType = LiveUrlTypeEnum.find(liveParam.getUrlType());
@@ -145,8 +147,10 @@
                // 查询是否已经存在该记录
                ArdVtdu ardVtdu = ardVtduService.selectArdVtduByName(vtdu.getName());
                int i = 0;
                log.info("机场视频插入前vtdu:{}",vtdu);
                if(ardVtdu == null){
                    i = ardVtduService.insertArdVtdu(vtdu);  // 保存到媒体表
                    log.info("机场视频插入后 i:{}",i);
                    if (i > 0) {
                        live.setRtmpUrl(rtmpUrl);
                        live.setRtspUrl(rtspUrl);
@@ -154,9 +158,13 @@
                    }
                }
                else{
                    live.setRtmpUrl(rtmpUrl);
                    live.setRtspUrl(rtspUrl);
                    live.setWebrtcUrl(webrtcUrl);
                    i = ardVtduService.updateArdVtdu(vtdu);
                    log.info("机场视频更新后 i:{}",i);
                    if (i > 0) {
                        live.setRtmpUrl(rtmpUrl);
                        live.setRtspUrl(rtspUrl);
                        live.setWebrtcUrl(webrtcUrl);
                    }
                }
                //int i = ardVtduService.insertArdVtdu(vtdu);  // 保存到媒体表
//                if (i > 0) {
@@ -174,6 +182,11 @@
                return ResponseResult.error(LiveErrorEnum.URL_TYPE_NOT_SUPPORTED);
        }
        // 开始直播时发送机场相机摄像头默认信息(舱外)到所有在线用户,只取机场sn,发机场的摄像头信息
        if(data.getChildDeviceSn()!=null) {
            String sn = data.getDeviceSn();
            deviceService.setRedisCameraPosition(sn, 1);
        }
        return ResponseResult.success(live);
    }
@@ -260,6 +273,10 @@
        if (ResponseResult.CODE_SUCCESS != receiveReply.getResult()) {
            return ResponseResult.error(LiveErrorEnum.find(receiveReply.getResult()));
        }
        // 将切换相机摄像头信息到redis
        Integer camera_position = liveParam.getCameraPosition();
        String sn = responseResult.getData().getDeviceSn();
        deviceService.setRedisCameraPosition(sn, camera_position);
        return ResponseResult.success();
    }