From cfe9c762d680569136d0246ab61c79cd7e4eba50 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期一, 05 九月 2022 09:40:14 +0800 Subject: [PATCH] 修复前端播放 --- src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java | 8 ++-- src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java | 5 -- src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java | 12 +---- web_src/src/components/dialog/devicePlayer.vue | 56 ++++++++++++++++----------- src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java | 3 - src/main/java/com/genersoft/iot/vmp/service/impl/MediaServiceImpl.java | 4 +- 6 files changed, 44 insertions(+), 44 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java index 9c31e2a..d0aa589 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java @@ -41,7 +41,9 @@ import javax.sip.message.Request; import java.lang.reflect.Field; import java.text.ParseException; +import java.util.ArrayList; import java.util.HashSet; +import java.util.List; /** * @description:璁惧鑳藉姏鎺ュ彛锛岀敤浜庡畾涔夎澶囩殑鎺у埗銆佹煡璇㈣兘鍔� @@ -685,15 +687,7 @@ // 澧炲姞Contact header Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getIp()+":"+sipConfig.getPort())); byeRequest.addHeader(sipFactory.createHeaderFactory().createContactHeader(concatAddress)); - List<String> agentParam = new ArrayList<>(); - agentParam.add("wvp-pro"); - // TODO 娣诲姞鐗堟湰淇℃伅浠ュ強鏃ユ湡 - UserAgentHeader userAgentHeader = null; - try { - userAgentHeader = sipFactory.createHeaderFactory().createUserAgentHeader(agentParam); - } catch (ParseException e) { - throw new RuntimeException(e); - } + UserAgentHeader userAgentHeader = HeaderUtils.createUserAgentHeader(sipFactory); byeRequest.addHeader(userAgentHeader); ClientTransaction clientTransaction = null; if("TCP".equals(protocol)) { diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java index 8977d8a..3a0c647 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java @@ -63,12 +63,9 @@ System.out.println(serverTransaction.getState().toString()); } // 鍒ゆ柇TCP杩樻槸UDP - boolean isTcp = false; ViaHeader reqViaHeader = (ViaHeader) request.getHeader(ViaHeader.NAME); String transport = reqViaHeader.getTransport(); - if (transport.equals("TCP")) { - isTcp = true; - } + boolean isTcp = "TCP".equals(transport); if (serverTransaction == null) { try { 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 cf41388..53e54b4 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 @@ -126,7 +126,7 @@ private DeferredResultHolder resultHolder; @Autowired - private ZLMHttpHookSubscribe subscribe; + private ZlmHttpHookSubscribe subscribe; @Autowired private SipConfig config; @@ -776,13 +776,13 @@ } } - public void inviteFromDeviceHandle(RequestEvent evt, String requesterId, String channelId1) throws InvalidArgumentException, ParseException, SipException, SdpException { + public void inviteFromDeviceHandle(RequestEvent evt, String requesterId, String channelId) throws InvalidArgumentException, ParseException, SipException, SdpException { // 闈炰笂绾у钩鍙拌姹傦紝鏌ヨ鏄惁璁惧璇锋眰锛堥�氬父涓烘帴鏀惰闊冲箍鎾殑璁惧锛� Device device = redisCatchStorage.getDevice(requesterId); - AudioBroadcastCatch audioBroadcastCatch = audioBroadcastManager.get(requesterId, channelId1); + AudioBroadcastCatch audioBroadcastCatch = audioBroadcastManager.get(requesterId, channelId); if (audioBroadcastCatch == null) { - logger.warn("鏉ヨ嚜璁惧鐨処nvite璇锋眰闈炶闊冲箍鎾紝宸插拷鐣�"); + logger.warn("鏉ヨ嚜璁惧鐨処nvite璇锋眰闈炶闊冲箍鎾紝宸插拷鐣ワ紝requesterId锛� {}/{}", requesterId, channelId); responseAck(evt, Response.FORBIDDEN); return; } diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServiceImpl.java index b63747c..3e9b530 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServiceImpl.java @@ -108,7 +108,7 @@ streamInfoResult.setWs_fmp4(String.format("ws://%s:%s/%s/%s.live.mp4%s", addr, mediaInfo.getHttpPort(), app, stream, callIdParam)); streamInfoResult.setTs(String.format("http://%s:%s/%s/%s.live.ts%s", addr, mediaInfo.getHttpPort(), app, stream, callIdParam)); streamInfoResult.setWs_ts(String.format("ws://%s:%s/%s/%s.live.ts%s", addr, mediaInfo.getHttpPort(), app, stream, callIdParam)); - streamInfoResult.setRtc(String.format("http://%s:%s/index/api/webrtc?app=%s&stream=%s&type=play%s", mediaInfo.getStreamIp(), mediaInfo.getHttpPort(), app, stream, ObjectUtils.isEmpty(callId)?"":"&callId=" + callId)); + streamInfoResult.setRtc(String.format("http://%s:%s/index/api/webrtc?app=%s&stream=%s&type=%s%s", mediaInfo.getStreamIp(), mediaInfo.getHttpPort(), app, stream, isPlay?"play":"push", ObjectUtils.isEmpty(callId)?"":"&callId=" + callId)); if (mediaInfo.getHttpSSlPort() != 0) { streamInfoResult.setHttps_flv(String.format("https://%s:%s/%s/%s.live.flv%s", addr, mediaInfo.getHttpSSlPort(), app, stream, callIdParam)); streamInfoResult.setWss_flv(String.format("wss://%s:%s/%s/%s.live.flv%s", addr, mediaInfo.getHttpSSlPort(), app, stream, callIdParam)); @@ -119,7 +119,7 @@ streamInfoResult.setHttps_ts(String.format("https://%s:%s/%s/%s.live.ts%s", addr, mediaInfo.getHttpSSlPort(), app, stream, callIdParam)); streamInfoResult.setWss_ts(String.format("wss://%s:%s/%s/%s.live.ts%s", addr, mediaInfo.getHttpSSlPort(), app, stream, callIdParam)); streamInfoResult.setWss_ts(String.format("wss://%s:%s/%s/%s.live.ts%s", addr, mediaInfo.getHttpSSlPort(), app, stream, callIdParam)); - streamInfoResult.setRtcs(String.format("https://%s:%s/index/api/webrtc?app=%s&stream=%s&type=play%s", mediaInfo.getStreamIp(), mediaInfo.getHttpSSlPort(), app, stream, ObjectUtils.isEmpty(callId)?"":"&callId=" + callId)); + streamInfoResult.setRtcs(String.format("https://%s:%s/index/api/webrtc?app=%s&stream=%s&type=%s%s", mediaInfo.getStreamIp(), mediaInfo.getHttpSSlPort(), app, stream, isPlay?"play":"push", ObjectUtils.isEmpty(callId)?"":"&callId=" + callId)); } streamInfoResult.setTracks(tracks); diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java index 2fcc9c2..9d6ba36 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java @@ -266,12 +266,11 @@ @Parameter(name = "channelId", description = "閫氶亾Id", required = true) @GetMapping("/broadcast/stop/{deviceId}/{channelId}") @PostMapping("/broadcast/stop/{deviceId}/{channelId}") - public WVPResult<String> stopBroadcastA(@PathVariable String deviceId, @PathVariable String channelId) { + public void stopBroadcastA(@PathVariable String deviceId, @PathVariable String channelId) { if (logger.isDebugEnabled()) { logger.debug("鍋滄璇煶骞挎挱API璋冪敤"); } playService.stopAudioBroadcast(deviceId, channelId); - return new WVPResult<>(0, "success", null); } @Operation(summary = "鑾峰彇鎵�鏈夌殑ssrc") diff --git a/web_src/src/components/dialog/devicePlayer.vue b/web_src/src/components/dialog/devicePlayer.vue index 2d3818a..fac02fd 100644 --- a/web_src/src/components/dialog/devicePlayer.vue +++ b/web_src/src/components/dialog/devicePlayer.vue @@ -1,7 +1,7 @@ <template> <div id="devicePlayer" v-loading="isLoging"> - <el-dialog title="瑙嗛鎾斁" top="0" :close-on-click-modal="false" :visible.sync="showVideoDialog" @close="close()"> + <el-dialog title="瑙嗛鎾斁" top="0" :close-on-click-modal="false" :visible.sync="showVideoDialog" :destroy-on-close="true" @close="close()"> <!-- <LivePlayer v-if="showVideoDialog" ref="videoPlayer" :videoUrl="videoUrl" :error="videoError" :message="videoError" :hasaudio="hasaudio" fluent autoplay live></LivePlayer> --> <div style="width: 100%; height: 100%"> <el-tabs type="card" :stretch="true" v-model="activePlayer" @tab-click="changePlayer" v-if="Object.keys(this.player).length > 1"> @@ -319,7 +319,9 @@ } }, created() { + console.log("created") console.log(this.player) + this.broadcastStatus = -1; if (Object.keys(this.player).length === 1) { this.activePlayer = Object.keys(this.player)[0] } @@ -332,7 +334,7 @@ // 濡備綍浣犲彧鏄敤涓�绉嶆挱鏀惧櫒锛岀洿鎺ユ敞閲婃帀涓嶇敤鐨勯儴鍒嗗嵆鍙� player: { jessibuca : ["ws_flv", "wss_flv"], - webRTC: ["rtc", "rtc"], + webRTC: ["rtc", "rtcs"], }, videoHistory: { date: '', @@ -540,9 +542,7 @@ this.stopPlayRecord(); } this.recordPlay = '' - if (this.broadcastStatus === 1) { - this.stopBroadcast() - } + this.stopBroadcast() }, copySharedInfo: function (data) { @@ -857,7 +857,12 @@ }).then( (res)=> { if (res.data.code == 0) { let streamInfo = res.data.data.streamInfo; - this.startBroadcast(streamInfo.rtc) + if (document.location.protocol.includes("https")) { + this.startBroadcast(streamInfo.rtcs) + }else { + this.startBroadcast(streamInfo.rtc) + } + }else { this.$message({ showClose: true, @@ -958,23 +963,28 @@ }, stopBroadcast(){ - this.broadcastStatus = -2; - this.broadcastRtc = null; - this.$axios({ - method: 'get', - url: '/api/play/broadcast/stop/' + this.deviceId + '/' + this.channelId - }).then( (res)=> { - if (res.data.code == 0) { - // this.broadcastStatus = -1; - // this.broadcastRtc.close() - }else { - this.$message({ - showClose: true, - message: res.data.msg, - type: "error", - }); - } - }); + if (this.broadcastStatus === -1) { + this.broadcastStatus = 1; + }else { + this.broadcastStatus = -2; + this.broadcastRtc = null; + this.$axios({ + method: 'get', + url: '/api/play/broadcast/stop/' + this.deviceId + '/' + this.channelId + }).then( (res)=> { + if (res.data.code == 0) { + // this.broadcastStatus = -1; + // this.broadcastRtc.close() + }else { + this.$message({ + showClose: true, + message: res.data.msg, + type: "error", + }); + } + }); + } + } } -- Gitblit v1.8.0