|  |  |  | 
|---|
|  |  |  | import com.genersoft.iot.vmp.common.VideoManagerConstants; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.conf.MediaServerConfig; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.gb28181.bean.ParentPlatformCatch; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.gb28181.bean.PlatformRegister; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.storager.IRedisCatchStorage; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.storager.dao.DeviceChannelMapper; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.utils.redis.RedisUtil; | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public boolean startPlay(StreamInfo stream) { | 
|---|
|  |  |  | return redis.set(String.format("%S_%s_%s_%s", VideoManagerConstants.PLAYER_PREFIX, stream.getStreamId(),stream.getDeviceID(), stream.getCahnnelId()), | 
|---|
|  |  |  | return redis.set(String.format("%S_%s_%s_%s", VideoManagerConstants.PLAYER_PREFIX, stream.getStreamId(),stream.getDeviceID(), stream.getChannelId()), | 
|---|
|  |  |  | stream); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public boolean stopPlay(StreamInfo streamInfo) { | 
|---|
|  |  |  | if (streamInfo == null) return false; | 
|---|
|  |  |  | DeviceChannel deviceChannel = deviceChannelMapper.queryChannel(streamInfo.getDeviceID(), streamInfo.getCahnnelId()); | 
|---|
|  |  |  | if (deviceChannel != null) { | 
|---|
|  |  |  | deviceChannel.setStreamId(null); | 
|---|
|  |  |  | deviceChannel.setDeviceId(streamInfo.getDeviceID()); | 
|---|
|  |  |  | deviceChannelMapper.update(deviceChannel); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return redis.del(String.format("%S_%s_%s_%s", VideoManagerConstants.PLAYER_PREFIX, | 
|---|
|  |  |  | streamInfo.getStreamId(), | 
|---|
|  |  |  | streamInfo.getDeviceID(), | 
|---|
|  |  |  | streamInfo.getCahnnelId())); | 
|---|
|  |  |  | streamInfo.getChannelId())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  | VideoManagerConstants.PLAYER_PREFIX, | 
|---|
|  |  |  | streamInfo.getStreamId(), | 
|---|
|  |  |  | streamInfo.getDeviceID(), | 
|---|
|  |  |  | streamInfo.getCahnnelId())); | 
|---|
|  |  |  | streamInfo.getChannelId())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public StreamInfo queryPlayByStreamId(String steamId) { | 
|---|
|  |  |  | 
|---|
|  |  |  | for (int i = 0; i < players.size(); i++) { | 
|---|
|  |  |  | String key = (String) players.get(i); | 
|---|
|  |  |  | StreamInfo streamInfo = (StreamInfo)redis.get(key); | 
|---|
|  |  |  | streamInfos.put(streamInfo.getDeviceID() + "_" + streamInfo.getCahnnelId(), streamInfo); | 
|---|
|  |  |  | streamInfos.put(streamInfo.getDeviceID() + "_" + streamInfo.getChannelId(), streamInfo); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return streamInfos; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public boolean startPlayback(StreamInfo stream) { | 
|---|
|  |  |  | return redis.set(String.format("%S_%s_%s_%s", VideoManagerConstants.PLAY_BLACK_PREFIX, stream.getStreamId(),stream.getDeviceID(), stream.getCahnnelId()), | 
|---|
|  |  |  | return redis.set(String.format("%S_%s_%s_%s", VideoManagerConstants.PLAY_BLACK_PREFIX, stream.getStreamId(),stream.getDeviceID(), stream.getChannelId()), | 
|---|
|  |  |  | stream); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public boolean stopPlayback(StreamInfo streamInfo) { | 
|---|
|  |  |  | if (streamInfo == null) return false; | 
|---|
|  |  |  | DeviceChannel deviceChannel = deviceChannelMapper.queryChannel(streamInfo.getDeviceID(), streamInfo.getCahnnelId()); | 
|---|
|  |  |  | DeviceChannel deviceChannel = deviceChannelMapper.queryChannel(streamInfo.getDeviceID(), streamInfo.getChannelId()); | 
|---|
|  |  |  | if (deviceChannel != null) { | 
|---|
|  |  |  | deviceChannel.setStreamId(null); | 
|---|
|  |  |  | deviceChannel.setDeviceId(streamInfo.getDeviceID()); | 
|---|
|  |  |  | 
|---|
|  |  |  | return redis.del(String.format("%S_%s_%s_%s", VideoManagerConstants.PLAY_BLACK_PREFIX, | 
|---|
|  |  |  | streamInfo.getStreamId(), | 
|---|
|  |  |  | streamInfo.getDeviceID(), | 
|---|
|  |  |  | streamInfo.getCahnnelId())); | 
|---|
|  |  |  | streamInfo.getChannelId())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | 
|---|
|  |  |  | if (playLeys == null || playLeys.size() == 0) return null; | 
|---|
|  |  |  | return (StreamInfo)redis.get(playLeys.get(0).toString()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void updatePlatformCatchInfo(ParentPlatformCatch parentPlatformCatch) { | 
|---|
|  |  |  | String key = VideoManagerConstants.PLATFORM_CATCH_PREFIX + parentPlatformCatch.getId(); | 
|---|
|  |  |  | redis.set(key, parentPlatformCatch); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void updatePlatformKeepalive(ParentPlatform parentPlatform) { | 
|---|
|  |  |  | String key = VideoManagerConstants.PLATFORM_KEEPLIVEKEY_PREFIX + parentPlatform.getDeviceGBId(); | 
|---|
|  |  |  | redis.set(key, "", Integer.parseInt(parentPlatform.getKeepTimeout())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void updatePlatformRegister(ParentPlatform parentPlatform) { | 
|---|
|  |  |  | String key = VideoManagerConstants.PLATFORM_REGISTER_PREFIX + parentPlatform.getDeviceGBId(); | 
|---|
|  |  |  | redis.set(key, "", Integer.parseInt(parentPlatform.getExpires())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public ParentPlatformCatch queryPlatformCatchInfo(String platformGbId) { | 
|---|
|  |  |  | return (ParentPlatformCatch)redis.get(VideoManagerConstants.PLATFORM_CATCH_PREFIX + platformGbId); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void delPlatformCatchInfo(String platformGbId) { | 
|---|
|  |  |  | redis.del(VideoManagerConstants.PLATFORM_CATCH_PREFIX + platformGbId); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void delPlatformKeepalive(String platformGbId) { | 
|---|
|  |  |  | redis.del(VideoManagerConstants.PLATFORM_KEEPLIVEKEY_PREFIX + platformGbId); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void delPlatformRegister(String platformGbId) { | 
|---|
|  |  |  | redis.del(VideoManagerConstants.PLATFORM_REGISTER_PREFIX + platformGbId); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|