| | |
| | | package com.genersoft.iot.vmp.media.zlm; |
| | | |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.genersoft.iot.vmp.media.zlm.dto.IMediaServerItem; |
| | | import com.genersoft.iot.vmp.media.zlm.dto.MediaItem; |
| | | import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; |
| | | import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyItem; |
| | | import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem; |
| | | import com.genersoft.iot.vmp.gb28181.bean.GbStream; |
| | | import com.genersoft.iot.vmp.service.IStreamPushService; |
| | | import com.genersoft.iot.vmp.storager.IRedisCatchStorage; |
| | | import com.genersoft.iot.vmp.storager.IVideoManagerStorager; |
| | |
| | | |
| | | import java.util.*; |
| | | |
| | | @SuppressWarnings("unchecked") |
| | | @Component |
| | | public class ZLMMediaListManager { |
| | | |
| | |
| | | jsonObject.put("stream", streamPushItem.getStream()); |
| | | jsonObject.put("mediaServerId", mediaServerItem.getId()); |
| | | subscribe.addSubscribe(ZLMHttpHookSubscribe.HookType.on_play,jsonObject, |
| | | (IMediaServerItem mediaServerItemInuse, JSONObject response)->{ |
| | | (MediaServerItem mediaServerItemInuse, JSONObject response)->{ |
| | | updateMedia(mediaServerItem, response.getString("app"), response.getString("stream")); |
| | | } |
| | | ); |
| | |
| | | |
| | | } |
| | | |
| | | public void addMedia(IMediaServerItem mediaServerItem, String app, String streamId) { |
| | | public void addMedia(MediaServerItem mediaServerItem, String app, String streamId) { |
| | | //使用异步更新推流 |
| | | updateMedia(mediaServerItem, app, streamId); |
| | | } |
| | | |
| | | public void addMedia(MediaItem mediaItem) { |
| | | storager.updateMedia(streamPushService.transform(mediaItem)); |
| | | } |
| | | |
| | | public void updateMedia(IMediaServerItem mediaServerItem, String app, String streamId) { |
| | | |
| | | public void updateMedia(MediaServerItem mediaServerItem, String app, String streamId) { |
| | | //使用异步更新推流 |
| | | zlmresTfulUtils.getMediaList(mediaServerItem, app, streamId, "rtmp", json->{ |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | public void removeMedia(String app, String streamId) { |
| | | public int removeMedia(String app, String streamId) { |
| | | // 查找是否关联了国标, 关联了不删除, 置为离线 |
| | | StreamProxyItem streamProxyItem = gbStreamMapper.selectOne(app, streamId); |
| | | int result = 0; |
| | | if (streamProxyItem == null) { |
| | | storager.removeMedia(app, streamId); |
| | | result = storager.removeMedia(app, streamId); |
| | | }else { |
| | | storager.mediaOutline(app, streamId); |
| | | result =storager.mediaOutline(app, streamId); |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | // public void clearAllSessions() { |