| | |
| | | import com.genersoft.iot.vmp.gb28181.event.EventPublisher; |
| | | import com.genersoft.iot.vmp.gb28181.event.subscribe.catalog.CatalogEvent; |
| | | import com.genersoft.iot.vmp.media.bean.MediaInfo; |
| | | import com.genersoft.iot.vmp.media.event.MediaArrivalEvent; |
| | | import com.genersoft.iot.vmp.media.event.MediaDepartureEvent; |
| | | import com.genersoft.iot.vmp.media.event.media.MediaArrivalEvent; |
| | | import com.genersoft.iot.vmp.media.event.media.MediaDepartureEvent; |
| | | import com.genersoft.iot.vmp.media.service.IMediaServerService; |
| | | import com.genersoft.iot.vmp.media.zlm.dto.MediaServer; |
| | | import com.genersoft.iot.vmp.media.zlm.dto.StreamAuthorityInfo; |
| | |
| | | streamPushMapper.update(transform); |
| | | gbStreamMapper.updateMediaServer(event.getApp(), event.getStream(), event.getMediaServer().getId()); |
| | | } |
| | | // TODO 相关的事件自行管理,不需要写入ZLMMediaListManager |
| | | // ChannelOnlineEvent channelOnlineEventLister = getChannelOnlineEventLister(transform.getApp(), transform.getStream()); |
| | | // if ( channelOnlineEventLister != null) { |
| | | // try { |
| | |
| | | // } |
| | | // 冗余数据,自己系统中自用 |
| | | redisCatchStorage.addPushListItem(event.getApp(), event.getStream(), event); |
| | | |
| | | // 发送流变化redis消息 |
| | | JSONObject jsonObject = new JSONObject(); |
| | | jsonObject.put("serverId", userSetting.getServerId()); |
| | | jsonObject.put("app", event.getApp()); |
| | | jsonObject.put("stream", event.getStream()); |
| | | jsonObject.put("register", true); |
| | | jsonObject.put("mediaServerId", event.getMediaServer().getId()); |
| | | redisCatchStorage.sendStreamChangeMsg(OriginType.values()[event.getMediaInfo().getOriginType()].getType(), jsonObject); |
| | | } |
| | | |
| | | /** |
| | |
| | | @Async("taskExecutor") |
| | | @EventListener |
| | | public void onApplicationEvent(MediaDepartureEvent event) { |
| | | |
| | | // 兼容流注销时类型从redis记录获取 |
| | | OnStreamChangedHookParam onStreamChangedHookParam = redisCatchStorage.getStreamInfo( |
| | | event.getApp(), event.getStream(), event.getMediaServer().getId()); |
| | | if (onStreamChangedHookParam != null) { |
| | | String type = OriginType.values()[onStreamChangedHookParam.getOriginType()].getType(); |
| | | redisCatchStorage.removeStream(event.getMediaServer().getId(), type, event.getApp(), event.getStream()); |
| | | if ("PUSH".equalsIgnoreCase(type)) { |
| | | // 冗余数据,自己系统中自用 |
| | | redisCatchStorage.removePushListItem(event.getApp(), event.getStream(), event.getMediaServer().getId()); |
| | | } |
| | | if (type != null) { |
| | | // 发送流变化redis消息 |
| | | JSONObject jsonObject = new JSONObject(); |
| | | jsonObject.put("serverId", userSetting.getServerId()); |
| | | jsonObject.put("app", event.getApp()); |
| | | jsonObject.put("stream", event.getStream()); |
| | | jsonObject.put("register", false); |
| | | jsonObject.put("mediaServerId", event.getMediaServer().getId()); |
| | | redisCatchStorage.sendStreamChangeMsg(type, jsonObject); |
| | | } |
| | | } |
| | | GbStream gbStream = gbStreamMapper.selectOne(event.getApp(), event.getStream()); |
| | | if (gbStream != null) { |
| | | if (userSetting.isUsePushingAsStatus()) { |
| | | streamPushMapper.updatePushStatus(event.getApp(), event.getStream(), false); |
| | | eventPublisher.catalogEventPublishForStream(null, gbStream, CatalogEvent.OFF); |
| | | } |
| | | }else { |
| | | streamPushMapper.del(event.getApp(), event.getStream()); |
| | | } |
| | | } |
| | | |
| | | |