From 9903f25cc149f7927d537ae34f47ea7c3c22b27d Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: Sun, 11 May 2025 22:00:33 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E5=BC=BA=E5=8C=96=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E5=8F=91=E9=80=81=E5=A4=B1=E8=B4=A5=E7=9A=84=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vmp/gb28181/bean/DeviceNotFoundEvent.java | 21 ++----- .../vmp/gb28181/bean/SipSendFailEvent.java | 19 ++++++ .../iot/vmp/gb28181/event/SipSubscribe.java | 13 +++- .../service/impl/DeviceServiceImpl.java | 2 +- .../iot/vmp/gb28181/transmit/SIPSender.java | 61 +++++++++++-------- .../impl/message/MessageRequestProcessor.java | 3 +- 6 files changed, 72 insertions(+), 47 deletions(-) create mode 100644 src/main/java/com/genersoft/iot/vmp/gb28181/bean/SipSendFailEvent.java diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/DeviceNotFoundEvent.java b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/DeviceNotFoundEvent.java index c782c3c16..bb65dbf39 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/DeviceNotFoundEvent.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/DeviceNotFoundEvent.java @@ -1,27 +1,16 @@ package com.genersoft.iot.vmp.gb28181.bean; +import lombok.Data; + import javax.sip.Dialog; import java.util.EventObject; -public class DeviceNotFoundEvent extends EventObject { +@Data +public class DeviceNotFoundEvent { private String callId; - /** - * Constructs a prototypical Event. - * - * @param dialog - * @throws IllegalArgumentException if source is null. - */ - public DeviceNotFoundEvent(Dialog dialog) { - super(dialog); - } - - public String getCallId() { - return callId; - } - - public void setCallId(String callId) { + public DeviceNotFoundEvent(String callId) { this.callId = callId; } } diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/SipSendFailEvent.java b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/SipSendFailEvent.java new file mode 100644 index 000000000..2e2c54e5c --- /dev/null +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/SipSendFailEvent.java @@ -0,0 +1,19 @@ +package com.genersoft.iot.vmp.gb28181.bean; + +import com.genersoft.iot.vmp.gb28181.event.SipSubscribe; +import lombok.Data; + +@Data +public class SipSendFailEvent extends SipSubscribe.EventResult { + + private String callId; + + private String msg; + + public static SipSendFailEvent getInstance(String callId, String msg){ + SipSendFailEvent sipSendFailEvent = new SipSendFailEvent(); + sipSendFailEvent.setMsg(msg); + sipSendFailEvent.setCallId(callId); + return sipSendFailEvent; + } +} diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/event/SipSubscribe.java b/src/main/java/com/genersoft/iot/vmp/gb28181/event/SipSubscribe.java index 027970038..22edb7f54 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/event/SipSubscribe.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/event/SipSubscribe.java @@ -1,6 +1,7 @@ package com.genersoft.iot.vmp.gb28181.event; import com.genersoft.iot.vmp.gb28181.bean.DeviceNotFoundEvent; +import com.genersoft.iot.vmp.gb28181.bean.SipSendFailEvent; import com.genersoft.iot.vmp.gb28181.event.sip.SipEvent; import gov.nist.javax.sip.message.SIPRequest; import gov.nist.javax.sip.message.SIPResponse; @@ -83,17 +84,17 @@ public class SipSubscribe { failedResult } - public static class EventResult{ + public static class EventResult{ public int statusCode; public EventResultType type; public String msg; public String callId; - public EventObject event; + public T event; public EventResult() { } - public EventResult(EventObject event) { + public EventResult(T event) { this.event = event; if (event instanceof ResponseEvent) { ResponseEvent responseEvent = (ResponseEvent)event; @@ -149,6 +150,12 @@ public class SipSubscribe { this.msg = "设备未找到"; this.statusCode = -1024; this.callId = ((DeviceNotFoundEvent) event).getCallId(); + }else if (event instanceof SipSendFailEvent) { + SipSendFailEvent sipSendFailEvent = (SipSendFailEvent) event; + this.type = EventResultType.deviceNotFoundEvent; + this.msg = sipSendFailEvent.getMsg(); + this.statusCode = -1024; + this.callId = ((SipSendFailEvent) event).getCallId(); } } } diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/DeviceServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/DeviceServiceImpl.java index c36d94800..0ce89c198 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/DeviceServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/DeviceServiceImpl.java @@ -293,7 +293,7 @@ public class DeviceServiceImpl implements IDeviceService { } } }else { - log.info("[移除移动位置订阅]失败,设备已经离线 : {}", device.getDeviceId()); + log.info("[移除目录订阅订阅]失败,设备已经离线 : {}", device.getDeviceId()); if (callback != null) { callback.run(false); } diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPSender.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPSender.java index ba2a04432..53cfb86f7 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPSender.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPSender.java @@ -2,6 +2,7 @@ package com.genersoft.iot.vmp.gb28181.transmit; import com.genersoft.iot.vmp.conf.SipConfig; import com.genersoft.iot.vmp.gb28181.SipLayer; +import com.genersoft.iot.vmp.gb28181.bean.SipSendFailEvent; import com.genersoft.iot.vmp.gb28181.event.SipSubscribe; import com.genersoft.iot.vmp.gb28181.event.sip.SipEvent; import com.genersoft.iot.vmp.gb28181.utils.SipUtils; @@ -12,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.util.ObjectUtils; +import javax.sip.ResponseEvent; import javax.sip.SipException; import javax.sip.header.CSeqHeader; import javax.sip.header.CallIdHeader; @@ -70,10 +72,10 @@ public class SIPSender { } } + CallIdHeader callIdHeader = (CallIdHeader) message.getHeader(CallIdHeader.NAME); + CSeqHeader cSeqHeader = (CSeqHeader) message.getHeader(CSeqHeader.NAME); + String key = callIdHeader.getCallId() + cSeqHeader.getSeqNumber(); if (okEvent != null || errorEvent != null) { - CallIdHeader callIdHeader = (CallIdHeader) message.getHeader(CallIdHeader.NAME); - CSeqHeader cSeqHeader = (CSeqHeader) message.getHeader(CSeqHeader.NAME); - String key = callIdHeader.getCallId() + cSeqHeader.getSeqNumber(); SipEvent sipEvent = SipEvent.getInstance(key, eventResult -> { sipSubscribe.removeSubscribe(key); if(okEvent != null) { @@ -87,31 +89,40 @@ public class SIPSender { }), timeout == null ? sipConfig.getTimeout() : timeout); sipSubscribe.addSubscribe(key, sipEvent); } + try { + if ("TCP".equals(transport)) { + SipProviderImpl tcpSipProvider = sipLayer.getTcpSipProvider(ip); + if (tcpSipProvider == null) { + log.error("[发送信息失败] 未找到tcp://{}的监听信息", ip); + return; + } + if (message instanceof Request) { + tcpSipProvider.sendRequest((Request) message); + } else if (message instanceof Response) { + tcpSipProvider.sendResponse((Response) message); + } - if ("TCP".equals(transport)) { - SipProviderImpl tcpSipProvider = sipLayer.getTcpSipProvider(ip); - if (tcpSipProvider == null) { - log.error("[发送信息失败] 未找到tcp://{}的监听信息", ip); - return; - } - if (message instanceof Request) { - tcpSipProvider.sendRequest((Request) message); - } else if (message instanceof Response) { - tcpSipProvider.sendResponse((Response) message); - } - - } else if ("UDP".equals(transport)) { - SipProviderImpl sipProvider = sipLayer.getUdpSipProvider(ip); - if (sipProvider == null) { - log.error("[发送信息失败] 未找到udp://{}的监听信息", ip); - return; - } - if (message instanceof Request) { - sipProvider.sendRequest((Request) message); - } else if (message instanceof Response) { - sipProvider.sendResponse((Response) message); + } else if ("UDP".equals(transport)) { + SipProviderImpl sipProvider = sipLayer.getUdpSipProvider(ip); + if (sipProvider == null) { + log.error("[发送信息失败] 未找到udp://{}的监听信息", ip); + return; + } + if (message instanceof Request) { + sipProvider.sendRequest((Request) message); + } else if (message instanceof Response) { + sipProvider.sendResponse((Response) message); + } } + }catch (SipException e) { + log.error("[发送信息失败] ", e); + SipSendFailEvent sipSendFailEvent = SipSendFailEvent.getInstance(callIdHeader.getCallId(), e.getMessage()); + SipSubscribe.EventResult eventResult = new SipSubscribe.EventResult<>(sipSendFailEvent); + SipEvent subscribe = sipSubscribe.getSubscribe(key); + subscribe.getErrorEvent().response(eventResult); + sipSubscribe.removeSubscribe(key); } + } public CallIdHeader getNewCallIdHeader(String ip, String transport) { diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/MessageRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/MessageRequestProcessor.java index 6d5caddaf..a8c106281 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/MessageRequestProcessor.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/MessageRequestProcessor.java @@ -98,8 +98,7 @@ public class MessageRequestProcessor extends SIPRequestProcessorParent implement log.warn("[设备未找到 ]deviceId: {}, callId: {}", deviceId, callIdHeader.getCallId()); SipEvent sipEvent = sipSubscribe.getSubscribe(callIdHeader.getCallId() + cSeqHeader.getSeqNumber()); if (sipEvent != null && sipEvent.getErrorEvent() != null){ - DeviceNotFoundEvent deviceNotFoundEvent = new DeviceNotFoundEvent(evt.getDialog()); - deviceNotFoundEvent.setCallId(callIdHeader.getCallId()); + DeviceNotFoundEvent deviceNotFoundEvent = new DeviceNotFoundEvent(callIdHeader.getCallId()); SipSubscribe.EventResult eventResult = new SipSubscribe.EventResult(deviceNotFoundEvent); sipEvent.getErrorEvent().response(eventResult); } From 198db8f68491809d91e4d23341f31db325a3525b Mon Sep 17 00:00:00 2001 From: lin <648540858@qq.com> Date: Mon, 12 May 2025 09:00:36 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=88=86=E5=B1=8F?= =?UTF-8?q?=E7=9B=91=E6=8E=A7=E5=9C=B0=E5=9D=80=E4=B8=8D=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/DeviceChannelServiceImpl.java | 134 +++++++++--------- web/src/router/index.js | 2 +- 2 files changed, 67 insertions(+), 69 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/DeviceChannelServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/DeviceChannelServiceImpl.java index ba4644632..613e54901 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/DeviceChannelServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/DeviceChannelServiceImpl.java @@ -120,85 +120,83 @@ public class DeviceChannelServiceImpl implements IDeviceChannelService { List updateChannels = new ArrayList<>(); HashMap channelsInStore = new HashMap<>(); int result = 0; - if (channels != null && !channels.isEmpty()) { - List channelList = channelMapper.queryChannelsByDeviceDbId(device.getId()); - if (channelList.isEmpty()) { - for (DeviceChannel channel : channels) { - channel.setDataDeviceId(device.getId()); - InviteInfo inviteInfo = inviteStreamService.getInviteInfoByDeviceAndChannel(InviteSessionType.PLAY, channel.getId()); - if (inviteInfo != null && inviteInfo.getStreamInfo() != null) { - channel.setStreamId(inviteInfo.getStreamInfo().getStream()); - } - String now = DateUtil.getNow(); + List channelList = channelMapper.queryChannelsByDeviceDbId(device.getId()); + if (channelList.isEmpty()) { + for (DeviceChannel channel : channels) { + channel.setDataDeviceId(device.getId()); + InviteInfo inviteInfo = inviteStreamService.getInviteInfoByDeviceAndChannel(InviteSessionType.PLAY, channel.getId()); + if (inviteInfo != null && inviteInfo.getStreamInfo() != null) { + channel.setStreamId(inviteInfo.getStreamInfo().getStream()); + } + String now = DateUtil.getNow(); + channel.setUpdateTime(now); + channel.setCreateTime(now); + addChannels.add(channel); + } + }else { + for (DeviceChannel deviceChannel : channelList) { + channelsInStore.put(deviceChannel.getDataDeviceId() + deviceChannel.getDeviceId(), deviceChannel); + } + for (DeviceChannel channel : channels) { + InviteInfo inviteInfo = inviteStreamService.getInviteInfoByDeviceAndChannel(InviteSessionType.PLAY, channel.getId()); + if (inviteInfo != null && inviteInfo.getStreamInfo() != null) { + channel.setStreamId(inviteInfo.getStreamInfo().getStream()); + } + String now = DateUtil.getNow(); + channel.setUpdateTime(now); + DeviceChannel deviceChannelInDb = channelsInStore.get(channel.getDataDeviceId() + channel.getDeviceId()); + if ( deviceChannelInDb != null) { + channel.setId(deviceChannelInDb.getId()); channel.setUpdateTime(now); + updateChannels.add(channel); + }else { channel.setCreateTime(now); + channel.setUpdateTime(now); addChannels.add(channel); } - }else { - for (DeviceChannel deviceChannel : channelList) { - channelsInStore.put(deviceChannel.getDataDeviceId() + deviceChannel.getDeviceId(), deviceChannel); - } - for (DeviceChannel channel : channels) { - InviteInfo inviteInfo = inviteStreamService.getInviteInfoByDeviceAndChannel(InviteSessionType.PLAY, channel.getId()); - if (inviteInfo != null && inviteInfo.getStreamInfo() != null) { - channel.setStreamId(inviteInfo.getStreamInfo().getStream()); - } - String now = DateUtil.getNow(); - channel.setUpdateTime(now); - DeviceChannel deviceChannelInDb = channelsInStore.get(channel.getDataDeviceId() + channel.getDeviceId()); - if ( deviceChannelInDb != null) { - channel.setId(deviceChannelInDb.getId()); - channel.setUpdateTime(now); - updateChannels.add(channel); - }else { - channel.setCreateTime(now); - channel.setUpdateTime(now); - addChannels.add(channel); - } - } } - Set channelSet = new HashSet<>(); - // 滤重 - List addChannelList = new ArrayList<>(); - List updateChannelList = new ArrayList<>(); - addChannels.forEach(channel -> { - if (channelSet.add(channel.getDeviceId())) { - addChannelList.add(channel); - } - }); - channelSet.clear(); - updateChannels.forEach(channel -> { - if (channelSet.add(channel.getDeviceId())) { - updateChannelList.add(channel); - } - }); + } + Set channelSet = new HashSet<>(); + // 滤重 + List addChannelList = new ArrayList<>(); + List updateChannelList = new ArrayList<>(); + addChannels.forEach(channel -> { + if (channelSet.add(channel.getDeviceId())) { + addChannelList.add(channel); + } + }); + channelSet.clear(); + updateChannels.forEach(channel -> { + if (channelSet.add(channel.getDeviceId())) { + updateChannelList.add(channel); + } + }); - int limitCount = 500; - if (!addChannelList.isEmpty()) { - if (addChannelList.size() > limitCount) { - for (int i = 0; i < addChannelList.size(); i += limitCount) { - int toIndex = i + limitCount; - if (i + limitCount > addChannelList.size()) { - toIndex = addChannelList.size(); - } - result += channelMapper.batchAdd(addChannelList.subList(i, toIndex)); + int limitCount = 500; + if (!addChannelList.isEmpty()) { + if (addChannelList.size() > limitCount) { + for (int i = 0; i < addChannelList.size(); i += limitCount) { + int toIndex = i + limitCount; + if (i + limitCount > addChannelList.size()) { + toIndex = addChannelList.size(); } - }else { - result += channelMapper.batchAdd(addChannelList); + result += channelMapper.batchAdd(addChannelList.subList(i, toIndex)); } + }else { + result += channelMapper.batchAdd(addChannelList); } - if (!updateChannelList.isEmpty()) { - if (updateChannelList.size() > limitCount) { - for (int i = 0; i < updateChannelList.size(); i += limitCount) { - int toIndex = i + limitCount; - if (i + limitCount > updateChannelList.size()) { - toIndex = updateChannelList.size(); - } - result += channelMapper.batchUpdate(updateChannelList.subList(i, toIndex)); + } + if (!updateChannelList.isEmpty()) { + if (updateChannelList.size() > limitCount) { + for (int i = 0; i < updateChannelList.size(); i += limitCount) { + int toIndex = i + limitCount; + if (i + limitCount > updateChannelList.size()) { + toIndex = updateChannelList.size(); } - }else { - result += channelMapper.batchUpdate(updateChannelList); + result += channelMapper.batchUpdate(updateChannelList.subList(i, toIndex)); } + }else { + result += channelMapper.batchUpdate(updateChannelList); } } return result; diff --git a/web/src/router/index.js b/web/src/router/index.js index cebaa4c6b..d86627dfe 100644 --- a/web/src/router/index.js +++ b/web/src/router/index.js @@ -60,7 +60,7 @@ export const constantRoutes = [ component: Layout, redirect: '/live', children: [{ - path: 'live', + path: '', name: 'Live', component: () => import('@/views/live/index'), meta: { title: '分屏监控', icon: 'live' } From f1fb0467740fd7bef468113785c1de9bfc8caeca Mon Sep 17 00:00:00 2001 From: lin <648540858@qq.com> Date: Mon, 12 May 2025 16:10:24 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=92=AD=E6=94=BE?= =?UTF-8?q?=E5=BC=B9=E7=AA=97=E4=B8=8B=E7=9A=84=E5=9C=B0=E5=9D=80=E5=A4=8D?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../transmit/event/request/impl/RegisterRequestProcessor.java | 2 -- web/package.json | 3 ++- web/src/main.js | 4 +++- web/src/views/common/jessibuca.vue | 4 ++-- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java index 5b05ec113..8e367a2c8 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java @@ -70,8 +70,6 @@ public class RegisterRequestProcessor extends SIPRequestProcessorParent implemen /** * 收到注册请求 处理 - * - * @param evt */ @Override public void process(RequestEvent evt) { diff --git a/web/package.json b/web/package.json index 39e835706..dffd8cbfc 100644 --- a/web/package.json +++ b/web/package.json @@ -14,8 +14,8 @@ "test:ci": "npm run lint && npm run test:unit" }, "dependencies": { - "@wchbrad/vue-easy-tree": "^1.0.13", "@femessage/log-viewer": "^1.5.0", + "@wchbrad/vue-easy-tree": "^1.0.13", "axios": "^0.24.0", "core-js": "3.6.5", "dayjs": "^1.11.13", @@ -31,6 +31,7 @@ "strip-ansi": "^7.1.0", "v-charts": "^1.19.0", "vue": "2.6.10", + "vue-clipboard2": "^0.3.3", "vue-clipboards": "^1.3.0", "vue-contextmenujs": "^1.4.11", "vue-router": "3.0.6", diff --git a/web/src/main.js b/web/src/main.js index 4f034431c..4f72d0d69 100644 --- a/web/src/main.js +++ b/web/src/main.js @@ -16,7 +16,8 @@ import '@/icons' // icon import '@/permission' // permission control import VueClipboards from 'vue-clipboards' -import Contextmenu from "vue-contextmenujs" +import Contextmenu from 'vue-contextmenujs' +import VueClipboard from 'vue-clipboard2' /** * If you don't want to use mock-server @@ -34,6 +35,7 @@ if (process.env.NODE_ENV === 'production') { Vue.use(ElementUI) Vue.use(VueClipboards) Vue.use(Contextmenu) +Vue.use(VueClipboard) Vue.config.productionTip = false diff --git a/web/src/views/common/jessibuca.vue b/web/src/views/common/jessibuca.vue index cac202443..fe07506cf 100755 --- a/web/src/views/common/jessibuca.vue +++ b/web/src/views/common/jessibuca.vue @@ -117,8 +117,8 @@ export default { width = (16 / 9) * height } - this.$refs.playerBox.style.width = width + 'px' - this.$refs.playerBox.style.height = height + 'px' + this.$refs.container.style.width = width + 'px' + this.$refs.container.style.height = height + 'px' this.playerWidth = width this.playerHeight = height if (this.playing) { From c2c44daca687c1c0955c882d36f6737560635dbc Mon Sep 17 00:00:00 2001 From: lin <648540858@qq.com> Date: Mon, 12 May 2025 16:33:16 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=92=AD=E6=94=BE?= =?UTF-8?q?=E5=9C=B0=E5=9D=80=E5=A4=8D=E5=88=B6=E5=92=8C=E5=88=86=E5=B1=8F?= =?UTF-8?q?=E6=92=AD=E6=94=BE=E5=B8=83=E5=B1=80BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/src/views/common/jessibuca.vue | 3 --- web/src/views/dialog/devicePlayer.vue | 12 ++++++------ 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/web/src/views/common/jessibuca.vue b/web/src/views/common/jessibuca.vue index fe07506cf..c37e1d0fa 100755 --- a/web/src/views/common/jessibuca.vue +++ b/web/src/views/common/jessibuca.vue @@ -116,9 +116,6 @@ export default { height = clientHeight width = (16 / 9) * height } - - this.$refs.container.style.width = width + 'px' - this.$refs.container.style.height = height + 'px' this.playerWidth = width this.playerHeight = height if (this.playing) { diff --git a/web/src/views/dialog/devicePlayer.vue b/web/src/views/dialog/devicePlayer.vue index cd898bb47..d36c5901b 100755 --- a/web/src/views/dialog/devicePlayer.vue +++ b/web/src/views/dialog/devicePlayer.vue @@ -111,10 +111,10 @@ @@ -124,10 +124,10 @@ @@ -137,10 +137,10 @@ From 49f4306bb3ac93a82f7810c0d6460eaa524bea23 Mon Sep 17 00:00:00 2001 From: lin <648540858@qq.com> Date: Mon, 12 May 2025 17:29:45 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E6=94=AF=E6=8C=81=E7=9B=B4=E6=8E=A5?= =?UTF-8?q?=E6=92=AD=E6=94=BE=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/src/router/index.js | 11 +++++++++++ web/src/views/{dialog => common}/rtcPlayer.vue | 0 web/src/views/dialog/devicePlayer.vue | 2 +- 3 files changed, 12 insertions(+), 1 deletion(-) rename web/src/views/{dialog => common}/rtcPlayer.vue (100%) diff --git a/web/src/router/index.js b/web/src/router/index.js index d86627dfe..fcc0c56f7 100644 --- a/web/src/router/index.js +++ b/web/src/router/index.js @@ -244,6 +244,17 @@ export const constantRoutes = [ } ] }, + { + path: '/play/wasm/:url', + name: 'wasmPlayer', + hidden: true, + component: () => import('@/views/common/jessibuca.vue') + }, + { + path: '/play/rtc/:url', + name: 'rtcPlayer', + component: () => import('@/views/common/rtcPlayer.vue') + }, // 404 page must be placed at the end !!! { path: '*', redirect: '/404', hidden: true } ] diff --git a/web/src/views/dialog/rtcPlayer.vue b/web/src/views/common/rtcPlayer.vue similarity index 100% rename from web/src/views/dialog/rtcPlayer.vue rename to web/src/views/common/rtcPlayer.vue diff --git a/web/src/views/dialog/devicePlayer.vue b/web/src/views/dialog/devicePlayer.vue index d36c5901b..95bef3077 100755 --- a/web/src/views/dialog/devicePlayer.vue +++ b/web/src/views/dialog/devicePlayer.vue @@ -362,7 +362,7 @@