Commit 03f35986818c86436a703493b7ac1147ce0e62fd
1 parent
20a47729
修复stream-on-demand配置失效的BUG
Showing
1 changed file
with
22 additions
and
18 deletions
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java
| ... | ... | @@ -451,11 +451,6 @@ public class ZLMHttpHookListener { |
| 451 | 451 | InviteInfo inviteInfo = inviteStreamService.getInviteInfoByStream(null, param.getStream()); |
| 452 | 452 | // 点播 |
| 453 | 453 | if (inviteInfo != null) { |
| 454 | - // 录像下载 | |
| 455 | - if (inviteInfo.getType() == InviteSessionType.DOWNLOAD) { | |
| 456 | - ret.put("close", false); | |
| 457 | - return ret; | |
| 458 | - } | |
| 459 | 454 | // 收到无人观看说明流也没有在往上级推送 |
| 460 | 455 | if (redisCatchStorage.isChannelSendingRTP(inviteInfo.getChannelId())) { |
| 461 | 456 | List<SendRtpItem> sendRtpItems = redisCatchStorage.querySendRTPServerByChnnelId( |
| ... | ... | @@ -473,22 +468,31 @@ public class ZLMHttpHookListener { |
| 473 | 468 | } |
| 474 | 469 | } |
| 475 | 470 | } |
| 476 | - Device device = deviceService.getDevice(inviteInfo.getDeviceId()); | |
| 477 | - if (device != null) { | |
| 478 | - try { | |
| 479 | - if (inviteStreamService.getInviteInfo(inviteInfo.getType(), inviteInfo.getDeviceId(), inviteInfo.getChannelId(), inviteInfo.getStream()) != null) { | |
| 480 | - cmder.streamByeCmd(device, inviteInfo.getChannelId(), | |
| 481 | - inviteInfo.getStream(), null); | |
| 471 | + | |
| 472 | + if (userSetting.getStreamOnDemand()) { | |
| 473 | + // 录像下载 | |
| 474 | + if (inviteInfo.getType() == InviteSessionType.DOWNLOAD) { | |
| 475 | + ret.put("close", false); | |
| 476 | + return ret; | |
| 477 | + } | |
| 478 | + | |
| 479 | + Device device = deviceService.getDevice(inviteInfo.getDeviceId()); | |
| 480 | + if (device != null) { | |
| 481 | + try { | |
| 482 | + if (inviteStreamService.getInviteInfo(inviteInfo.getType(), inviteInfo.getDeviceId(), inviteInfo.getChannelId(), inviteInfo.getStream()) != null) { | |
| 483 | + cmder.streamByeCmd(device, inviteInfo.getChannelId(), | |
| 484 | + inviteInfo.getStream(), null); | |
| 485 | + } | |
| 486 | + } catch (InvalidArgumentException | ParseException | SipException | | |
| 487 | + SsrcTransactionNotFoundException e) { | |
| 488 | + logger.error("[无人观看]点播, 发送BYE失败 {}", e.getMessage()); | |
| 482 | 489 | } |
| 483 | - } catch (InvalidArgumentException | ParseException | SipException | | |
| 484 | - SsrcTransactionNotFoundException e) { | |
| 485 | - logger.error("[无人观看]点播, 发送BYE失败 {}", e.getMessage()); | |
| 486 | 490 | } |
| 487 | - } | |
| 488 | 491 | |
| 489 | - inviteStreamService.removeInviteInfo(inviteInfo.getType(), inviteInfo.getDeviceId(), | |
| 490 | - inviteInfo.getChannelId(), inviteInfo.getStream()); | |
| 491 | - storager.stopPlay(inviteInfo.getDeviceId(), inviteInfo.getChannelId()); | |
| 492 | + inviteStreamService.removeInviteInfo(inviteInfo.getType(), inviteInfo.getDeviceId(), | |
| 493 | + inviteInfo.getChannelId(), inviteInfo.getStream()); | |
| 494 | + storager.stopPlay(inviteInfo.getDeviceId(), inviteInfo.getChannelId()); | |
| 495 | + } | |
| 492 | 496 | return ret; |
| 493 | 497 | } |
| 494 | 498 | } else { | ... | ... |