| | |
| | | import javax.sip.ResponseEvent; |
| | | import javax.sip.SipException; |
| | | |
| | | import com.genersoft.iot.vmp.common.VideoManagerConstants; |
| | | import com.genersoft.iot.vmp.conf.exception.ControllerException; |
| | | import com.genersoft.iot.vmp.conf.exception.ServiceException; |
| | | import com.genersoft.iot.vmp.conf.exception.SsrcTransactionNotFoundException; |
| | | import com.genersoft.iot.vmp.gb28181.bean.*; |
| | | import com.genersoft.iot.vmp.service.IDeviceService; |
| | | import com.genersoft.iot.vmp.utils.redis.RedisUtil; |
| | | import com.genersoft.iot.vmp.vmanager.bean.ErrorCode; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | |
| | | // } |
| | | // })); |
| | | } |
| | | |
| | | @Override |
| | | public void pauseRtp(String streamId) throws ServiceException, InvalidArgumentException, ParseException, SipException { |
| | | String key = redisCatchStorage.queryPlaybackForKey(null, null, streamId, null); |
| | | StreamInfo streamInfo = redisCatchStorage.queryPlayback(null, null, streamId, null); |
| | | if (null == streamInfo) { |
| | | logger.warn("streamId不存在!"); |
| | | throw new ServiceException("streamId不存在"); |
| | | } |
| | | streamInfo.setPause(true); |
| | | RedisUtil.set(key, streamInfo); |
| | | MediaServerItem mediaServerItem = mediaServerService.getOne(streamInfo.getMediaServerId()); |
| | | if (null == mediaServerItem) { |
| | | logger.warn("mediaServer 不存在!"); |
| | | throw new ServiceException("mediaServer不存在"); |
| | | } |
| | | // zlm 暂停RTP超时检查 |
| | | JSONObject jsonObject = zlmresTfulUtils.pauseRtpCheck(mediaServerItem, streamId); |
| | | if (jsonObject == null || jsonObject.getInteger("code") != 0) { |
| | | throw new ServiceException("暂停RTP接收失败"); |
| | | } |
| | | Device device = storager.queryVideoDevice(streamInfo.getDeviceID()); |
| | | cmder.playPauseCmd(device, streamInfo); |
| | | } |
| | | |
| | | @Override |
| | | public void resumeRtp(String streamId) throws ServiceException, InvalidArgumentException, ParseException, SipException { |
| | | String key = redisCatchStorage.queryPlaybackForKey(null, null, streamId, null); |
| | | StreamInfo streamInfo = redisCatchStorage.queryPlayback(null, null, streamId, null); |
| | | if (null == streamInfo) { |
| | | logger.warn("streamId不存在!"); |
| | | throw new ServiceException("streamId不存在"); |
| | | } |
| | | streamInfo.setPause(false); |
| | | RedisUtil.set(key, streamInfo); |
| | | MediaServerItem mediaServerItem = mediaServerService.getOne(streamInfo.getMediaServerId()); |
| | | if (null == mediaServerItem) { |
| | | logger.warn("mediaServer 不存在!"); |
| | | throw new ServiceException("mediaServer不存在"); |
| | | } |
| | | // zlm 暂停RTP超时检查 |
| | | JSONObject jsonObject = zlmresTfulUtils.resumeRtpCheck(mediaServerItem, streamId); |
| | | if (jsonObject == null || jsonObject.getInteger("code") != 0) { |
| | | throw new ServiceException("继续RTP接收失败"); |
| | | } |
| | | Device device = storager.queryVideoDevice(streamInfo.getDeviceID()); |
| | | cmder.playResumeCmd(device, streamInfo); |
| | | } |
| | | } |