Commit 8f7e8efc981cf68a3067fb3421fdfbbf6f6275ab
1 parent
020f9ea8
合并主线
Showing
11 changed files
with
149 additions
and
195 deletions
sql/update.sql
| 1 | -alter table parent_platform | |
| 2 | - add startOfflinePush int default 0 null; | |
| 3 | - | |
| 4 | -alter table parent_platform | |
| 5 | - add administrativeDivision varchar(50) not null; | |
| 6 | - | |
| 7 | -alter table parent_platform | |
| 8 | - add catalogGroup int default 1 null; | |
| 9 | - | |
| 10 | -alter table device | |
| 11 | - add audioChannelForReceive VARCHAR(50) null; | |
| 12 | - | |
| 13 | -alter table device | |
| 14 | - add audioChannelForSend VARCHAR(50) null; | |
| 15 | - | |
| 16 | -alter table stream_push | |
| 17 | - add serverId varchar(50) not null; | |
| 18 | - | |
| 19 | -alter table device | |
| 20 | - add geoCoordSys varchar(50) not null; | |
| 21 | -alter table device | |
| 22 | - add treeType varchar(50) not null; | |
| 23 | -update device set device.geoCoordSys='WGS84'; | |
| 24 | -update device set device.treeType='CivilCode'; | |
| 25 | - | |
| 26 | -alter table device_channel | |
| 27 | - add longitudeGcj02 double default null; | |
| 28 | -alter table device_channel | |
| 29 | - add latitudeGcj02 double default null; | |
| 30 | -alter table device_channel | |
| 31 | - add longitudeWgs84 double default null; | |
| 32 | -alter table device_channel | |
| 33 | - add latitudeWgs84 double default null; | |
| 34 | -alter table device_channel | |
| 35 | - add businessGroupId varchar(50) default null; | |
| 36 | -alter table device_channel | |
| 37 | - add gpsTime varchar(50) default null; | |
| 38 | - | |
| 39 | - | |
| 40 | -alter table device_mobile_position | |
| 41 | - change cnLng longitudeGcj02 double default null; | |
| 42 | -alter table device_mobile_position | |
| 43 | - change cnLat latitudeGcj02 double default null; | |
| 44 | -alter table device_mobile_position | |
| 45 | - add longitudeWgs84 double default null; | |
| 46 | -alter table device_mobile_position | |
| 47 | - add latitudeWgs84 double default null; | |
| 48 | -alter table device_mobile_position | |
| 49 | - drop geodeticSystem; | |
| 50 | -alter table device_mobile_position | |
| 51 | - add createTime varchar(50) default null; | |
| 52 | - | |
| 53 | -alter table device_alarm | |
| 54 | - add createTime varchar(50) default null; | |
| 55 | - | |
| 56 | -alter table gb_stream | |
| 57 | - change createStamp createTime varchar(50) default null; | |
| 58 | - | |
| 59 | -alter table parent_platform | |
| 60 | - add createTime varchar(50) default null; | |
| 61 | -alter table parent_platform | |
| 62 | - add updateTime varchar(50) default null; | |
| 63 | - | |
| 64 | -alter table stream_proxy | |
| 65 | - add updateTime varchar(50) default null; | |
| 66 | - | |
| 67 | -alter table stream_push | |
| 68 | - add pushTime varchar(50) default null; | |
| 69 | -alter table stream_push | |
| 70 | - add status int DEFAULT NULL; | |
| 71 | -alter table stream_push | |
| 72 | - add updateTime varchar(50) default null; | |
| 73 | -alter table stream_push | |
| 74 | - add pushIng int DEFAULT NULL; | |
| 75 | -alter table stream_push | |
| 76 | - change createStamp createTime varchar(50) default null; | |
| 77 | - | |
| 78 | -alter table gb_stream | |
| 79 | - drop column status; | |
| 80 | - | |
| 81 | -alter table user | |
| 82 | - add pushKey varchar(50) default null; | |
| 83 | -update user set pushKey='453df297a57a5a7438934sda801fc3' where id=1; | |
| 84 | - | |
| 85 | -alter table parent_platform | |
| 86 | - add treeType varchar(50) not null; | |
| 87 | -update parent_platform set parent_platform.treeType='BusinessGroup'; | |
| 88 | -alter table parent_platform drop shareAllLiveStream; | |
| 89 | - | |
| 90 | -alter table platform_catalog | |
| 91 | - add civilCode varchar(50) default null; | |
| 92 | -alter table platform_catalog | |
| 93 | - add businessGroupId varchar(50) default null; | |
| 94 | - | |
| 95 | -/********************* ADD ***************************/ | |
| 96 | -alter table stream_push | |
| 97 | - add self int DEFAULT NULL; | |
| 98 | - | |
| 99 | - |
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommander.java
| ... | ... | @@ -10,6 +10,7 @@ import gov.nist.javax.sip.message.SIPRequest; |
| 10 | 10 | import gov.nist.javax.sip.stack.SIPDialog; |
| 11 | 11 | |
| 12 | 12 | import javax.sip.Dialog; |
| 13 | +import javax.sip.InvalidArgumentException; | |
| 13 | 14 | import javax.sip.SipException; |
| 14 | 15 | import java.text.ParseException; |
| 15 | 16 | |
| ... | ... | @@ -127,7 +128,7 @@ public interface ISIPCommander { |
| 127 | 128 | */ |
| 128 | 129 | void streamByeCmd(String deviceId, String channelId, String stream, String callId, SipSubscribe.Event okEvent); |
| 129 | 130 | void streamByeCmd(String deviceId, String channelId, String stream, String callId); |
| 130 | - void streamByeCmd(SIPDialog dialog, SIPRequest request, SipSubscribe.Event okEvent) throws SipException, ParseException; | |
| 131 | + void streamByeCmd(SIPDialog dialog, String channelId, SIPRequest request, SipSubscribe.Event okEvent) throws SipException, ParseException, InvalidArgumentException; | |
| 131 | 132 | |
| 132 | 133 | /** |
| 133 | 134 | * 回放暂停 | ... | ... |
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
| ... | ... | @@ -676,6 +676,46 @@ public class SIPCommander implements ISIPCommander { |
| 676 | 676 | streamByeCmd(deviceId, channelId, stream, callId, null); |
| 677 | 677 | } |
| 678 | 678 | |
| 679 | + @Override | |
| 680 | + public void streamByeCmd(SIPDialog dialog, String channelId, SIPRequest request, SipSubscribe.Event okEvent) throws SipException, ParseException, InvalidArgumentException { | |
| 681 | + Request byeRequest = dialog.createRequest(Request.BYE); | |
| 682 | + SipURI byeURI = (SipURI) byeRequest.getRequestURI(); | |
| 683 | + byeURI.setHost(request.getRemoteAddress().getHostAddress()); | |
| 684 | + byeURI.setPort(request.getRemotePort()); | |
| 685 | + byeURI.setUser(channelId); | |
| 686 | + ViaHeader viaHeader = (ViaHeader) byeRequest.getHeader(ViaHeader.NAME); | |
| 687 | + String protocol = viaHeader.getTransport().toUpperCase(); | |
| 688 | + viaHeader.setRPort(); | |
| 689 | + // 增加Contact header | |
| 690 | + Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getIp()+":"+sipConfig.getPort())); | |
| 691 | + byeRequest.addHeader(sipFactory.createHeaderFactory().createContactHeader(concatAddress)); | |
| 692 | + List<String> agentParam = new ArrayList<>(); | |
| 693 | + agentParam.add("wvp-pro"); | |
| 694 | + // TODO 添加版本信息以及日期 | |
| 695 | + UserAgentHeader userAgentHeader = null; | |
| 696 | + try { | |
| 697 | + userAgentHeader = sipFactory.createHeaderFactory().createUserAgentHeader(agentParam); | |
| 698 | + } catch (ParseException e) { | |
| 699 | + throw new RuntimeException(e); | |
| 700 | + } | |
| 701 | + byeRequest.addHeader(userAgentHeader); | |
| 702 | + ClientTransaction clientTransaction = null; | |
| 703 | + if("TCP".equals(protocol)) { | |
| 704 | + clientTransaction = tcpSipProvider.getNewClientTransaction(byeRequest); | |
| 705 | + } else if("UDP".equals(protocol)) { | |
| 706 | + clientTransaction = udpSipProvider.getNewClientTransaction(byeRequest); | |
| 707 | + } | |
| 708 | + | |
| 709 | + CallIdHeader callIdHeader = (CallIdHeader) byeRequest.getHeader(CallIdHeader.NAME); | |
| 710 | + if (okEvent != null) { | |
| 711 | + sipSubscribe.addOkSubscribe(callIdHeader.getCallId(), okEvent); | |
| 712 | + } | |
| 713 | + CSeqHeader cSeqHeader = (CSeqHeader)byeRequest.getHeader(CSeqHeader.NAME); | |
| 714 | + cSeqHeader.setSeqNumber(redisCatchStorage.getCSEQ()); | |
| 715 | + dialog.sendRequest(clientTransaction); | |
| 716 | + | |
| 717 | + } | |
| 718 | + | |
| 679 | 719 | /** |
| 680 | 720 | * 视频流停止 |
| 681 | 721 | */ | ... | ... |
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/AckRequestProcessor.java
| ... | ... | @@ -26,10 +26,7 @@ import org.springframework.beans.factory.InitializingBean; |
| 26 | 26 | import org.springframework.beans.factory.annotation.Autowired; |
| 27 | 27 | import org.springframework.stereotype.Component; |
| 28 | 28 | |
| 29 | -import javax.sip.Dialog; | |
| 30 | -import javax.sip.DialogState; | |
| 31 | -import javax.sip.RequestEvent; | |
| 32 | -import javax.sip.SipException; | |
| 29 | +import javax.sip.*; | |
| 33 | 30 | import javax.sip.address.SipURI; |
| 34 | 31 | import javax.sip.header.CallIdHeader; |
| 35 | 32 | import javax.sip.header.FromHeader; |
| ... | ... | @@ -151,11 +148,13 @@ public class AckRequestProcessor extends SIPRequestProcessorParent implements In |
| 151 | 148 | if (sendRtpItem.isOnlyAudio()) { |
| 152 | 149 | // 语音对讲 |
| 153 | 150 | try { |
| 154 | - cmder.streamByeCmd((SIPDialog) evt.getDialog(), (SIPRequest) evt.getRequest(), null); | |
| 151 | + cmder.streamByeCmd((SIPDialog) evt.getDialog(), sendRtpItem.getChannelId(), (SIPRequest) evt.getRequest(), null); | |
| 155 | 152 | } catch (SipException e) { |
| 156 | 153 | throw new RuntimeException(e); |
| 157 | 154 | } catch (ParseException e) { |
| 158 | 155 | throw new RuntimeException(e); |
| 156 | + } catch (InvalidArgumentException e) { | |
| 157 | + throw new RuntimeException(e); | |
| 159 | 158 | } |
| 160 | 159 | } else { |
| 161 | 160 | // 向上级平台 | ... | ... |
src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
| ... | ... | @@ -90,12 +90,6 @@ public class MediaServerServiceImpl implements IMediaServerService { |
| 90 | 90 | |
| 91 | 91 | |
| 92 | 92 | @Autowired |
| 93 | - private IVideoManagerStorage storager; | |
| 94 | - | |
| 95 | - @Autowired | |
| 96 | - private IStreamProxyService streamProxyService; | |
| 97 | - | |
| 98 | - @Autowired | |
| 99 | 93 | private EventPublisher publisher; |
| 100 | 94 | |
| 101 | 95 | /** |
| ... | ... | @@ -288,6 +282,7 @@ public class MediaServerServiceImpl implements IMediaServerService { |
| 288 | 282 | return (MediaServerItem)RedisUtil.get(key); |
| 289 | 283 | } |
| 290 | 284 | |
| 285 | + | |
| 291 | 286 | @Override |
| 292 | 287 | public MediaServerItem getDefaultMediaServer() { |
| 293 | 288 | ... | ... |
src/main/java/com/genersoft/iot/vmp/service/impl/MediaServiceImpl.java
| ... | ... | @@ -25,12 +25,8 @@ public class MediaServiceImpl implements IMediaService { |
| 25 | 25 | private IRedisCatchStorage redisCatchStorage; |
| 26 | 26 | |
| 27 | 27 | @Autowired |
| 28 | - private IVideoManagerStorage storager; | |
| 29 | - | |
| 30 | - @Autowired | |
| 31 | 28 | private IMediaServerService mediaServerService; |
| 32 | 29 | |
| 33 | - | |
| 34 | 30 | @Autowired |
| 35 | 31 | private MediaConfig mediaConfig; |
| 36 | 32 | ... | ... |
src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
| ... | ... | @@ -4,6 +4,7 @@ import java.math.BigDecimal; |
| 4 | 4 | import java.math.RoundingMode; |
| 5 | 5 | import java.util.*; |
| 6 | 6 | |
| 7 | +import javax.sip.InvalidArgumentException; | |
| 7 | 8 | import javax.sip.ResponseEvent; |
| 8 | 9 | |
| 9 | 10 | import com.genersoft.iot.vmp.gb28181.bean.*; |
| ... | ... | @@ -745,7 +746,7 @@ public class PlayServiceImpl implements IPlayService { |
| 745 | 746 | zlmresTfulUtils.closeStreams(mediaInfo, sendRtpItem.getApp(), sendRtpItem.getStreamId()); |
| 746 | 747 | } |
| 747 | 748 | if (audioBroadcastCatch.getStatus() == AudioBroadcastCatchStatus.Ok) { |
| 748 | - cmder.streamByeCmd(audioBroadcastCatch.getDialog(), audioBroadcastCatch.getRequest(), null); | |
| 749 | + cmder.streamByeCmd(audioBroadcastCatch.getDialog(), audioBroadcastCatch.getChannelId(), audioBroadcastCatch.getRequest(), null); | |
| 749 | 750 | } |
| 750 | 751 | audioBroadcastManager.del(deviceId, channelId); |
| 751 | 752 | |
| ... | ... | @@ -753,6 +754,8 @@ public class PlayServiceImpl implements IPlayService { |
| 753 | 754 | throw new RuntimeException(e); |
| 754 | 755 | } catch (ParseException e) { |
| 755 | 756 | throw new RuntimeException(e); |
| 757 | + } catch (InvalidArgumentException e) { | |
| 758 | + throw new RuntimeException(e); | |
| 756 | 759 | } |
| 757 | 760 | } |
| 758 | 761 | ... | ... |
src/main/java/com/genersoft/iot/vmp/service/impl/StreamProxyServiceImpl.java
| ... | ... | @@ -77,12 +77,6 @@ public class StreamProxyServiceImpl implements IStreamProxyService { |
| 77 | 77 | private PlatformGbStreamMapper platformGbStreamMapper; |
| 78 | 78 | |
| 79 | 79 | @Autowired |
| 80 | - private EventPublisher eventPublisher; | |
| 81 | - | |
| 82 | - @Autowired | |
| 83 | - private ParentPlatformMapper parentPlatformMapper; | |
| 84 | - | |
| 85 | - @Autowired | |
| 86 | 80 | private IGbStreamService gbStreamService; |
| 87 | 81 | |
| 88 | 82 | @Autowired | ... | ... |
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java
| ... | ... | @@ -197,9 +197,11 @@ public class PlayController { |
| 197 | 197 | |
| 198 | 198 | @Operation(summary = "语音广播命令") |
| 199 | 199 | @Parameter(name = "deviceId", description = "设备国标编号", required = true) |
| 200 | - @GetMapping("/broadcast/{deviceId}") | |
| 201 | - @PostMapping("/broadcast/{deviceId}") | |
| 202 | - public DeferredResult<WVPResult<AudioBroadcastResult>> broadcastApi(@PathVariable String deviceId) { | |
| 200 | + @Parameter(name = "deviceId", description = "通道国标编号", required = true) | |
| 201 | + @Parameter(name = "timeout", description = "推流超时时间(秒)", required = true) | |
| 202 | + @GetMapping("/broadcast/{deviceId}/{channelId}") | |
| 203 | + @PostMapping("/broadcast/{deviceId}/{channelId}") | |
| 204 | + public DeferredResult<WVPResult<AudioBroadcastResult>> broadcastApi(@PathVariable String deviceId, @PathVariable String channelId, Integer timeout) { | |
| 203 | 205 | if (logger.isDebugEnabled()) { |
| 204 | 206 | logger.debug("语音广播API调用"); |
| 205 | 207 | } |
| ... | ... | @@ -258,13 +260,10 @@ public class PlayController { |
| 258 | 260 | return result; |
| 259 | 261 | } |
| 260 | 262 | |
| 261 | - @Operation(summary = "获取所有的ssrc") | |
| 262 | 263 | |
| 263 | - @ApiOperation("停止语音广播") | |
| 264 | - @ApiImplicitParams({ | |
| 265 | - @ApiImplicitParam(name = "deviceId", value = "设备Id", dataTypeClass = String.class), | |
| 266 | - @ApiImplicitParam(name = "channelId", value = "通道Id", dataTypeClass = String.class), | |
| 267 | - }) | |
| 264 | + @Operation(summary = "停止语音广播") | |
| 265 | + @Parameter(name = "deviceId", description = "设备Id", required = true) | |
| 266 | + @Parameter(name = "channelId", description = "通道Id", required = true) | |
| 268 | 267 | @GetMapping("/broadcast/stop/{deviceId}/{channelId}") |
| 269 | 268 | @PostMapping("/broadcast/stop/{deviceId}/{channelId}") |
| 270 | 269 | public WVPResult<String> stopBroadcastA(@PathVariable String deviceId, @PathVariable String channelId) { | ... | ... |
src/main/java/com/genersoft/iot/vmp/vmanager/user/UserController.java
| ... | ... | @@ -199,4 +199,15 @@ public class UserController { |
| 199 | 199 | } |
| 200 | 200 | } |
| 201 | 201 | } |
| 202 | + | |
| 203 | + @PostMapping("/userInfo") | |
| 204 | + @Operation(summary = "管理员修改普通用户密码") | |
| 205 | + public LoginUser getUserInfo() { | |
| 206 | + // 获取当前登录用户id | |
| 207 | + LoginUser userInfo = SecurityUtils.getUserInfo(); | |
| 208 | + if (userInfo == null) { | |
| 209 | + throw new ControllerException(ErrorCode.ERROR100); | |
| 210 | + } | |
| 211 | + return userInfo; | |
| 212 | + } | |
| 202 | 213 | } | ... | ... |
web_src/src/components/dialog/devicePlayer.vue
| ... | ... | @@ -871,76 +871,91 @@ export default { |
| 871 | 871 | } |
| 872 | 872 | }, |
| 873 | 873 | startBroadcast(url){ |
| 874 | - // 获取推流鉴权KEY | |
| 875 | - console.log(this.$loginUser) | |
| 876 | - console.log(this.$loginUser.pushKey) | |
| 877 | - url += "&sign=" + crypto.createHash('md5').update(this.$loginUser.pushKey, "utf8").digest('hex') | |
| 878 | - console.log("开始语音对讲: " + url) | |
| 879 | - this.broadcastRtc = new ZLMRTCClient.Endpoint({ | |
| 880 | - debug: true, // 是否打印日志 | |
| 881 | - zlmsdpUrl: url, //流地址 | |
| 882 | - simulecast: false, | |
| 883 | - useCamera: false, | |
| 884 | - audioEnable: true, | |
| 885 | - videoEnable: false, | |
| 886 | - recvOnly: false, | |
| 887 | - }) | |
| 874 | + // 获取推流鉴权Key | |
| 875 | + this.$axios({ | |
| 876 | + method: 'post', | |
| 877 | + url: '/api/user/userInfo', | |
| 878 | + }).then( (res)=> { | |
| 879 | + if (res.data.code !== 0) { | |
| 880 | + this.$message({ | |
| 881 | + showClose: true, | |
| 882 | + message: "获取推流鉴权Key失败", | |
| 883 | + type: "error", | |
| 884 | + }); | |
| 885 | + }else { | |
| 886 | + let pushKey = res.data.data.pushKey; | |
| 887 | + // 获取推流鉴权KEY | |
| 888 | + url += "&sign=" + crypto.createHash('md5').update(pushKey, "utf8").digest('hex') | |
| 889 | + console.log("开始语音对讲: " + url) | |
| 890 | + this.broadcastRtc = new ZLMRTCClient.Endpoint({ | |
| 891 | + debug: true, // 是否打印日志 | |
| 892 | + zlmsdpUrl: url, //流地址 | |
| 893 | + simulecast: false, | |
| 894 | + useCamera: false, | |
| 895 | + audioEnable: true, | |
| 896 | + videoEnable: false, | |
| 897 | + recvOnly: false, | |
| 898 | + }) | |
| 888 | 899 | |
| 889 | - // webrtcPlayer.on(ZLMRTCClient.Events.WEBRTC_ON_REMOTE_STREAMS,(e)=>{//获取到了远端流,可以播放 | |
| 890 | - // console.error('播放成功',e.streams) | |
| 891 | - // this.broadcastStatus = 1; | |
| 892 | - // }); | |
| 893 | - // | |
| 894 | - // webrtcPlayer.on(ZLMRTCClient.Events.WEBRTC_ON_LOCAL_STREAM,(s)=>{// 获取到了本地流 | |
| 895 | - // this.broadcastStatus = 1; | |
| 896 | - // // document.getElementById('selfVideo').srcObject=s; | |
| 897 | - // // this.eventcallbacK("LOCAL STREAM", "获取到了本地流") | |
| 898 | - // }); | |
| 900 | + // webrtcPlayer.on(ZLMRTCClient.Events.WEBRTC_ON_REMOTE_STREAMS,(e)=>{//获取到了远端流,可以播放 | |
| 901 | + // console.error('播放成功',e.streams) | |
| 902 | + // this.broadcastStatus = 1; | |
| 903 | + // }); | |
| 904 | + // | |
| 905 | + // webrtcPlayer.on(ZLMRTCClient.Events.WEBRTC_ON_LOCAL_STREAM,(s)=>{// 获取到了本地流 | |
| 906 | + // this.broadcastStatus = 1; | |
| 907 | + // // document.getElementById('selfVideo').srcObject=s; | |
| 908 | + // // this.eventcallbacK("LOCAL STREAM", "获取到了本地流") | |
| 909 | + // }); | |
| 899 | 910 | |
| 900 | - this.broadcastRtc.on(ZLMRTCClient.Events.WEBRTC_NOT_SUPPORT,(e)=>{// 获取到了本地流 | |
| 901 | - console.error('不支持webrtc',e) | |
| 902 | - this.$message({ | |
| 903 | - showClose: true, | |
| 904 | - message: '不支持webrtc, 无法进行语音对讲', | |
| 905 | - type: 'error' | |
| 906 | - }); | |
| 907 | - }); | |
| 911 | + this.broadcastRtc.on(ZLMRTCClient.Events.WEBRTC_NOT_SUPPORT,(e)=>{// 获取到了本地流 | |
| 912 | + console.error('不支持webrtc',e) | |
| 913 | + this.$message({ | |
| 914 | + showClose: true, | |
| 915 | + message: '不支持webrtc, 无法进行语音对讲', | |
| 916 | + type: 'error' | |
| 917 | + }); | |
| 918 | + }); | |
| 908 | 919 | |
| 909 | - this.broadcastRtc.on(ZLMRTCClient.Events.WEBRTC_ICE_CANDIDATE_ERROR,(e)=>{// ICE 协商出错 | |
| 910 | - console.error('ICE 协商出错') | |
| 911 | - this.$message({ | |
| 912 | - showClose: true, | |
| 913 | - message: 'ICE 协商出错', | |
| 914 | - type: 'error' | |
| 915 | - }); | |
| 916 | - }); | |
| 920 | + this.broadcastRtc.on(ZLMRTCClient.Events.WEBRTC_ICE_CANDIDATE_ERROR,(e)=>{// ICE 协商出错 | |
| 921 | + console.error('ICE 协商出错') | |
| 922 | + this.$message({ | |
| 923 | + showClose: true, | |
| 924 | + message: 'ICE 协商出错', | |
| 925 | + type: 'error' | |
| 926 | + }); | |
| 927 | + }); | |
| 917 | 928 | |
| 918 | - this.broadcastRtc.on(ZLMRTCClient.Events.WEBRTC_OFFER_ANWSER_EXCHANGE_FAILED,(e)=>{// offer anwser 交换失败 | |
| 919 | - console.error('offer anwser 交换失败',e) | |
| 920 | - this.$message({ | |
| 921 | - showClose: true, | |
| 922 | - message: 'offer anwser 交换失败' + e, | |
| 923 | - type: 'error' | |
| 924 | - }); | |
| 925 | - }); | |
| 926 | - this.broadcastRtc.on(ZLMRTCClient.Events.WEBRTC_ON_CONNECTION_STATE_CHANGE,(e)=>{// offer anwser 交换失败 | |
| 927 | - console.log('状态改变',e) | |
| 928 | - if (e === "connecting") { | |
| 929 | - this.broadcastStatus = 0; | |
| 930 | - }else if (e === "connected") { | |
| 931 | - this.broadcastStatus = 1; | |
| 932 | - }else if (e === "disconnected") { | |
| 933 | - this.broadcastStatus = -1; | |
| 929 | + this.broadcastRtc.on(ZLMRTCClient.Events.WEBRTC_OFFER_ANWSER_EXCHANGE_FAILED,(e)=>{// offer anwser 交换失败 | |
| 930 | + console.error('offer anwser 交换失败',e) | |
| 931 | + this.$message({ | |
| 932 | + showClose: true, | |
| 933 | + message: 'offer anwser 交换失败' + e, | |
| 934 | + type: 'error' | |
| 935 | + }); | |
| 936 | + }); | |
| 937 | + this.broadcastRtc.on(ZLMRTCClient.Events.WEBRTC_ON_CONNECTION_STATE_CHANGE,(e)=>{// offer anwser 交换失败 | |
| 938 | + console.log('状态改变',e) | |
| 939 | + if (e === "connecting") { | |
| 940 | + this.broadcastStatus = 0; | |
| 941 | + }else if (e === "connected") { | |
| 942 | + this.broadcastStatus = 1; | |
| 943 | + }else if (e === "disconnected") { | |
| 944 | + this.broadcastStatus = -1; | |
| 945 | + } | |
| 946 | + }); | |
| 947 | + this.broadcastRtc.on(ZLMRTCClient.Events.CAPTURE_STREAM_FAILED,(e)=>{// offer anwser 交换失败 | |
| 948 | + console.log('捕获流失败',e) | |
| 949 | + this.$message({ | |
| 950 | + showClose: true, | |
| 951 | + message: '捕获流失败' + e, | |
| 952 | + type: 'error' | |
| 953 | + }); | |
| 954 | + }); | |
| 934 | 955 | } |
| 935 | 956 | }); |
| 936 | - this.broadcastRtc.on(ZLMRTCClient.Events.CAPTURE_STREAM_FAILED,(e)=>{// offer anwser 交换失败 | |
| 937 | - console.log('捕获流失败',e) | |
| 938 | - this.$message({ | |
| 939 | - showClose: true, | |
| 940 | - message: '捕获流失败' + e, | |
| 941 | - type: 'error' | |
| 942 | - }); | |
| 943 | - }); | |
| 957 | + | |
| 958 | + | |
| 944 | 959 | }, |
| 945 | 960 | stopBroadcast(){ |
| 946 | 961 | this.broadcastStatus = -2; | ... | ... |