From 7609d7836c52a7619a51fa8b707502f027c2e1f0 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期日, 03 七月 2022 16:23:31 +0800
Subject: [PATCH] 优化对讲逻辑
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java | 2 +-
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java | 4 +---
src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java | 8 ++++++--
web_src/src/components/dialog/devicePlayer.vue | 12 ++++++++----
4 files changed, 16 insertions(+), 10 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java
index 7b7136f..7a80de4 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java
@@ -830,7 +830,7 @@
subscribeKey.put("app", app);
subscribeKey.put("stream", stream);
subscribeKey.put("regist", true);
- subscribeKey.put("schema", "rtmp");
+ subscribeKey.put("schema", "rtsp");
subscribeKey.put("mediaServerId", mediaServerItem.getId());
String finalSsrc = ssrc;
// 娴佸凡缁忓瓨鍦ㄦ椂鐩存帴鎺ㄦ祦
diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java
index 4ea9cf1..b47475c 100644
--- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java
@@ -339,9 +339,7 @@
@PostMapping(value = "/on_stream_changed", produces = "application/json;charset=UTF-8")
public ResponseEntity<String> onStreamChanged(@RequestBody MediaItem item){
- if (logger.isDebugEnabled()) {
- logger.debug("[ ZLM HOOK ]on_stream_changed API璋冪敤锛屽弬鏁帮細" + JSONObject.toJSONString(item));
- }
+ logger.info("[ ZLM HOOK ]on_stream_changed API璋冪敤锛屽弬鏁帮細" + JSONObject.toJSONString(item));
String mediaServerId = item.getMediaServerId();
JSONObject json = (JSONObject) JSON.toJSON(item);
ZLMHttpHookSubscribe.Event subscribe = this.subscribe.getSubscribe(ZLMHttpHookSubscribe.HookType.on_stream_changed, json);
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
index b944375..1a8c5de 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
@@ -689,6 +689,9 @@
logger.warn("璇煶骞挎挱宸茬粡寮�鍚細 {}", channelId);
event.call("璇煶骞挎挱宸茬粡寮�鍚�");
return;
+ }else {
+ audioBroadcastManager.del(deviceChannel.getDeviceId(),channelId);
+ redisCatchStorage.deleteSendRTPServer(device.getDeviceId(), channelId, sendRtpItem.getCallId(), sendRtpItem.getStreamId());
}
}
}
@@ -710,7 +713,7 @@
public void stopAudioBroadcast(String deviceId, String channelId){
AudioBroadcastCatch audioBroadcastCatch = audioBroadcastManager.get(deviceId, channelId);
if (audioBroadcastCatch != null) {
- audioBroadcastManager.del(deviceId, audioBroadcastCatch.getChannelId());
+
try {
SendRtpItem sendRtpItem = redisCatchStorage.querySendRTPServer(deviceId, audioBroadcastCatch.getChannelId(), null, null);
if (sendRtpItem != null) {
@@ -722,11 +725,12 @@
param.put("stream", sendRtpItem.getStreamId());
zlmresTfulUtils.stopSendRtp(mediaInfo, param);
// 绔嬪埢缁撴潫璁惧鐨勬帹娴侊紝绛夊緟鑷缁撴潫澶參
-// zlmresTfulUtils.closeStreams(mediaInfo, sendRtpItem.getApp(), sendRtpItem.getStreamId());
+ zlmresTfulUtils.closeStreams(mediaInfo, sendRtpItem.getApp(), sendRtpItem.getStreamId());
}
if (audioBroadcastCatch.getStatus() == AudioBroadcastCatchStatus.Ok) {
cmder.streamByeCmd(audioBroadcastCatch.getDialog(), audioBroadcastCatch.getRequest(), null);
}
+ audioBroadcastManager.del(deviceId, channelId);
} catch (SipException e) {
throw new RuntimeException(e);
diff --git a/web_src/src/components/dialog/devicePlayer.vue b/web_src/src/components/dialog/devicePlayer.vue
index a33e8a4..25628f2 100644
--- a/web_src/src/components/dialog/devicePlayer.vue
+++ b/web_src/src/components/dialog/devicePlayer.vue
@@ -278,8 +278,9 @@
</el-tab-pane>
<el-tab-pane label="璇煶瀵硅" name="broadcast" >
<div class="trank" style="text-align: center;">
- <el-button @click="broadcastStatusClick()" :type="getBroadcastStatus()" circle icon="el-icon-microphone" style="font-size: 32px; padding: 24px;margin-top: 24px;"/>
+ <el-button @click="broadcastStatusClick()" :type="getBroadcastStatus()" :disabled="broadcastStatus === -2" circle icon="el-icon-microphone" style="font-size: 32px; padding: 24px;margin-top: 24px;"/>
<p>
+ <span v-if="broadcastStatus === -2">姝e湪閲婃斁璧勬簮</span>
<span v-if="broadcastStatus === -1">鐐瑰嚮寮�濮嬪璁�</span>
<span v-if="broadcastStatus === 0">绛夊緟鎺ラ�氫腑...</span>
<span v-if="broadcastStatus === 1">璇疯璇�</span>
@@ -371,7 +372,7 @@
showTimeText: "00:00:00",
streamInfo: null,
broadcastRtc: null,
- broadcastStatus: -1, // -1 榛樿鐘舵�� 0 绛夊緟鎺ラ�� 1 鎺ラ�氭垚鍔�
+ broadcastStatus: -1, // -2 姝e湪閲婃斁璧勬簮 -1 榛樿鐘舵�� 0 绛夊緟鎺ラ�� 1 鎺ラ�氭垚鍔�
};
},
methods: {
@@ -821,6 +822,9 @@
});
},
getBroadcastStatus() {
+ if (this.broadcastStatus == -2) {
+ return "primary"
+ }
if (this.broadcastStatus == -1) {
return "primary"
}
@@ -835,6 +839,7 @@
broadcastStatusClick() {
if (this.broadcastStatus == -1) {
// 榛樿鐘舵�侊紝 寮�濮�
+ this.broadcastStatus = 0
// 鍙戣捣璇煶瀵硅
this.$axios({
method: 'get',
@@ -924,7 +929,7 @@
});
},
stopBroadcast(){
- this.broadcastRtc.close()
+ this.broadcastStatus = -2;
this.broadcastRtc = null;
this.$axios({
method: 'get',
@@ -932,7 +937,6 @@
}).then( (res)=> {
if (res.data.code == 0) {
// this.broadcastStatus = -1;
-
}else {
this.$message({
showClose: true,
--
Gitblit v1.8.0