| | |
| | | /** |
| | | * 开启直播 |
| | | */ |
| | | public void StartLiveStreaming(String sn) { |
| | | public void StartLiveStreaming(String sn ,String userId) { |
| | | //调用开始直播 |
| | | ResponseResult rlive = null; |
| | | String resultLive = ""; |
| | |
| | | // 如果存在直播则读取直播地址返回 |
| | | if (RedisOpsUtils.checkExist(RedisConst.WEBSOCKET_VIDEO_ADDRESS_PREFIX + sn)) { |
| | | resultLive = String.valueOf(RedisOpsUtils.get(RedisConst.WEBSOCKET_VIDEO_ADDRESS_PREFIX + sn)); |
| | | log.info("SN: {}-redis中存在相机的播放地址信息,直接返回地址!", sn); |
| | | } else { |
| | | log.info("SN: {}-redis中未找到相机的播放地址信息!停止直播后再开启直播", sn); |
| | | StopLiveStreaming(sn); |
| | |
| | | rlive.setType(MessageType.LIVESTREAM.getType()); |
| | | resultLive = _objectMapper.writeValueAsString(rlive); |
| | | RedisOpsUtils.set(RedisConst.WEBSOCKET_VIDEO_ADDRESS_PREFIX + sn, resultLive); |
| | | LiveDTO live = (LiveDTO) rlive.getData(); |
| | | Boolean isWeb = _deviceService.updateWebrtcUrl(sn,live.getWebrtcUrl()); |
| | | if (isWeb) { |
| | | log.info("SN: {}-更新webrtc地址成功!", sn); |
| | | } |
| | | } |
| | | } |
| | | _dockWebSocketHandler.sendMessageToSubscribers(sn, MessageType.LIVESTREAM.getType(), resultLive); |
| | | _dockWebSocketHandler.sendMessageToSubscribers(sn, MessageType.LIVESTREAM.getType(), resultLive, userId); |
| | | log.info("SN: {}-直播地址:{}", sn, resultLive); |
| | | } catch (Exception e) { |
| | | log.info("SN: {}-开启直播失败!原因:{}", sn, e.getMessage()); |