| | |
| | | import com.ard.sample.manage.service.ILiveStreamService; |
| | | import com.ard.vtdu.config.MediamtxConfig; |
| | | 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; |
| | |
| | | */ |
| | | @Slf4j |
| | | @Service |
| | | @Transactional |
| | | //@Transactional |
| | | public class LiveStreamServiceImpl implements ILiveStreamService { |
| | | |
| | | @Autowired |
| | |
| | | return responseResult; |
| | | } |
| | | |
| | | // 将机场推流代码放到入库代码后面。 |
| | | DeviceDTO data = (DeviceDTO) responseResult.getData(); |
| | | // target topic |
| | | String respTopic = THING_MODEL_PRE + PRODUCT + |
| | | data.getDeviceSn() + SERVICES_SUF; |
| | | ServiceReply receiveReply = this.publishLiveStart(respTopic, liveParam); |
| | | ServiceReply receiveReply=new ServiceReply(); |
| | | // ServiceReply receiveReply = this.publishLiveStart(respTopic, liveParam); |
| | | |
| | | if (ResponseResult.CODE_SUCCESS != receiveReply.getResult()) { |
| | | log.info("机场直播开启失败,错误码:{},错误描述:{}", receiveReply.getResult(), LiveErrorEnum.find(receiveReply.getResult()).getErrorMsg()); |
| | | return ResponseResult.error(receiveReply.getResult(), LiveErrorEnum.find(receiveReply.getResult()).getErrorMsg()); |
| | | } |
| | | // if (ResponseResult.CODE_SUCCESS != receiveReply.getResult()) { |
| | | // log.info("机场直播开启失败,错误码:{},错误描述:{}", receiveReply.getResult(), LiveErrorEnum.find(receiveReply.getResult()).getErrorMsg()); |
| | | // return ResponseResult.error(receiveReply.getResult(), LiveErrorEnum.find(receiveReply.getResult()).getErrorMsg()); |
| | | // } |
| | | |
| | | LiveUrlTypeEnum urlType = LiveUrlTypeEnum.find(liveParam.getUrlType()); |
| | | LiveDTO live = new LiveDTO(); |
| | |
| | | String webrtcUrl = |
| | | protocol + mediamtxConfig.getPlayHost() + ":" + mediamtxConfig.getWebrtcPort() + "/" + name; // 拼接 |
| | | // webrtcUrl |
| | | |
| | | //不管插入数据库成不成功,都返回地址 |
| | | live.setRtmpUrl(rtmpUrl); |
| | | live.setRtspUrl(rtspUrl); |
| | | live.setWebrtcUrl(webrtcUrl); |
| | | |
| | | // 如果没有,插入新的记录 |
| | | ArdVtdu vtdu = |
| | |
| | | return ResponseResult.error(LiveErrorEnum.URL_TYPE_NOT_SUPPORTED); |
| | | } |
| | | |
| | | receiveReply = this.publishLiveStart(respTopic, liveParam); |
| | | |
| | | if (ResponseResult.CODE_SUCCESS != receiveReply.getResult()) { |
| | | log.info("机场直播开启失败,错误码:{},错误描述:{}", receiveReply.getResult(), LiveErrorEnum.find(receiveReply.getResult()).getErrorMsg()); |
| | | return ResponseResult.error(receiveReply.getResult(), LiveErrorEnum.find(receiveReply.getResult()).getErrorMsg()); |
| | | } |
| | | |
| | | // 开始直播时发送机场相机摄像头默认信息(舱外)到所有在线用户,只取机场sn,发机场的摄像头信息 |
| | | if(data.getChildDeviceSn()!=null) { |
| | | String sn = data.getDeviceSn(); |
| | |
| | | |
| | | ServiceReply receiveReply = this.publishLiveStop(respTopic, videoId); |
| | | if (receiveReply.getResult() != 0) { |
| | | log.info("机场直播停止失败,错误码:{},错误描述:{}", receiveReply.getResult(), LiveErrorEnum.find(receiveReply.getResult()).getErrorMsg()); |
| | | log.info("videoId:{},直播停止失败,错误码:{},错误描述:{}", videoId, receiveReply.getResult(), LiveErrorEnum.find(receiveReply.getResult()).getErrorMsg()); |
| | | return ResponseResult.error(LiveErrorEnum.find(receiveReply.getResult())); |
| | | } |
| | | //注释掉删除流媒体管理库中的信息 |