Commit 468e2b2ffbbb4e15dea11d1f9c7451a8097a3ab8

Authored by xiaoQQya
1 parent ff1e9f79

fix(play): 修复作为上级平台点播截取快照问题

src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
... ... @@ -271,18 +271,7 @@ public class PlayServiceImpl implements IPlayService {
271 271 streamInfo);
272 272 logger.info("[点播成功] deviceId: {}, channelId:{}, 码流类型:{}", device.getDeviceId(),
273 273 device.isSwitchPrimarySubStream() ? "辅码流" : "主码流");
274   - String streamUrl;
275   - if (mediaServerItemInuse.getRtspPort() != 0) {
276   - streamUrl = String.format("rtsp://127.0.0.1:%s/%s/%s", mediaServerItemInuse.getRtspPort(), "rtp", ssrcInfo.getStream());
277   - }else {
278   - streamUrl = String.format("http://127.0.0.1:%s/%s/%s.live.mp4", mediaServerItemInuse.getHttpPort(), "rtp", ssrcInfo.getStream());
279   - }
280   - String path = "snap";
281   - String fileName = device.getDeviceId() + "_" + channelId + ".jpg";
282   - // 请求截图
283   - logger.info("[请求截图]: " + fileName);
284   - zlmresTfulUtils.getSnap(mediaServerItemInuse, streamUrl, 15, 1, path, fileName);
285   -
  274 + snapOnPlay(mediaServerItemInuse, device.getDeviceId(), channelId, ssrcInfo.getStream());
286 275 }, (event) -> {
287 276 inviteInfo.setStatus(InviteSessionStatus.ok);
288 277  
... ... @@ -365,6 +354,7 @@ public class PlayServiceImpl implements IPlayService {
365 354 InviteErrorCode.SUCCESS.getCode(),
366 355 InviteErrorCode.SUCCESS.getMsg(),
367 356 streamInfo);
  357 + snapOnPlay(mediaServerItemInUse, device.getDeviceId(), channelId, stream);
368 358 });
369 359 return;
370 360 }
... ... @@ -440,6 +430,28 @@ public class PlayServiceImpl implements IPlayService {
440 430 }
441 431 }
442 432  
  433 + /**
  434 + * 点播成功时调用截图.
  435 + *
  436 + * @param mediaServerItemInuse media
  437 + * @param deviceId 设备 ID
  438 + * @param channelId 通道 ID
  439 + * @param stream ssrc
  440 + */
  441 + private void snapOnPlay(MediaServerItem mediaServerItemInuse, String deviceId, String channelId, String stream) {
  442 + String streamUrl;
  443 + if (mediaServerItemInuse.getRtspPort() != 0) {
  444 + streamUrl = String.format("rtsp://127.0.0.1:%s/%s/%s", mediaServerItemInuse.getRtspPort(), "rtp", stream);
  445 + } else {
  446 + streamUrl = String.format("http://127.0.0.1:%s/%s/%s.live.mp4", mediaServerItemInuse.getHttpPort(), "rtp", stream);
  447 + }
  448 + String path = "snap";
  449 + String fileName = deviceId + "_" + channelId + ".jpg";
  450 + // 请求截图
  451 + logger.info("[请求截图]: " + fileName);
  452 + zlmresTfulUtils.getSnap(mediaServerItemInuse, streamUrl, 15, 1, path, fileName);
  453 + }
  454 +
443 455 private StreamInfo onPublishHandlerForPlay(MediaServerItem mediaServerItem, HookParam hookParam, String deviceId, String channelId) {
444 456 StreamInfo streamInfo = null;
445 457 Device device = redisCatchStorage.getDevice(deviceId);
... ...