|
|
@ -348,6 +348,7 @@ public class PlayServiceImpl implements IPlayService { |
|
|
|
msg.setId(uuid); |
|
|
|
msg.setKey(key); |
|
|
|
PlayBackResult<RequestMessage> playBackResult = new PlayBackResult<>(); |
|
|
|
|
|
|
|
Timer timer = new Timer(); |
|
|
|
timer.schedule(new TimerTask() { |
|
|
|
@Override |
|
|
@ -356,7 +357,16 @@ public class PlayServiceImpl implements IPlayService { |
|
|
|
playBackResult.setCode(-1); |
|
|
|
playBackResult.setData(msg); |
|
|
|
callback.call(playBackResult); |
|
|
|
SIPDialog dialog = streamSession.getDialogByStream(deviceId, channelId, ssrcInfo.getStream()); |
|
|
|
// 点播超时回复BYE 同时释放ssrc以及此次点播的资源
|
|
|
|
if (dialog != null) { |
|
|
|
// 点播超时回复BYE 同时释放ssrc以及此次点播的资源
|
|
|
|
cmder.streamByeCmd(device.getDeviceId(), channelId, ssrcInfo.getStream()); |
|
|
|
}else { |
|
|
|
mediaServerService.releaseSsrc(newMediaServerItem.getId(), ssrcInfo.getSsrc()); |
|
|
|
mediaServerService.closeRTPServer(deviceId, channelId, ssrcInfo.getStream()); |
|
|
|
streamSession.remove(deviceId, channelId, ssrcInfo.getStream()); |
|
|
|
} |
|
|
|
cmder.streamByeCmd(device.getDeviceId(), channelId, ssrcInfo.getStream()); |
|
|
|
// 回复之前所有的点播请求
|
|
|
|
callback.call(playBackResult); |
|
|
|