From 336bcc662b0dcdc685eb52812c32c7d39af0615c Mon Sep 17 00:00:00 2001 From: luojie Date: Sun, 29 Oct 2023 13:17:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=87=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hd-glasses-app/.env.dev | 5 +- hd-glasses-app/.env.prod | 2 +- hd-glasses-app/package-lock.json | 5 + hd-glasses-app/package.json | 1 + hd-glasses-app/public/index.html | 2 +- hd-glasses-app/public/srs/srs.sdk.js | 85 +- hd-glasses-app/src/assets/media/call_down.png | Bin 0 -> 1489 bytes .../src/assets/media/camera_close.png | Bin 0 -> 812 bytes .../src/assets/media/camera_open.png | Bin 0 -> 598 bytes hd-glasses-app/src/assets/media/mute-fill.png | Bin 0 -> 1280 bytes .../src/assets/media/sound-fill.png | Bin 0 -> 1165 bytes hd-glasses-app/src/assets/media/switch.png | Bin 0 -> 2686 bytes .../src/assets/media/voice_close.png | Bin 0 -> 1314 bytes .../src/assets/media/voice_open.png | Bin 0 -> 1286 bytes hd-glasses-app/src/pages/call_room.vue | 255 +++- .../pages/hd_show_equipment_move_history.vue | 1176 ++++++++++++++++ .../src/pages/hd_show_patrolTmp_history.vue | 1224 +++++++++++++++++ .../src/pages/hd_show_patrol_history.vue | 250 +++- hd-glasses-app/src/router/index.js | 8 + .../message/service/MessageSyncService.java | 5 + im-uniapp/App.vue | 4 +- im-uniapp/common/config.js | 12 +- im-uniapp/common/customHttp.js | 4 +- im-uniapp/common/utils.js | 12 +- im-uniapp/index.html | 4 +- im-uniapp/package.json | 2 + im-uniapp/wx/chatWindow/index.vue | 37 +- im-uniapp/wx/login/index.vue | 110 +- im-uniapp/wx/tabbar2/index.vue | 43 +- 29 files changed, 3077 insertions(+), 169 deletions(-) create mode 100644 hd-glasses-app/src/assets/media/call_down.png create mode 100644 hd-glasses-app/src/assets/media/camera_close.png create mode 100644 hd-glasses-app/src/assets/media/camera_open.png create mode 100644 hd-glasses-app/src/assets/media/mute-fill.png create mode 100644 hd-glasses-app/src/assets/media/sound-fill.png create mode 100644 hd-glasses-app/src/assets/media/switch.png create mode 100644 hd-glasses-app/src/assets/media/voice_close.png create mode 100644 hd-glasses-app/src/assets/media/voice_open.png create mode 100644 hd-glasses-app/src/pages/hd_show_equipment_move_history.vue create mode 100644 hd-glasses-app/src/pages/hd_show_patrolTmp_history.vue diff --git a/hd-glasses-app/.env.dev b/hd-glasses-app/.env.dev index a0db78c..2a5e5d6 100644 --- a/hd-glasses-app/.env.dev +++ b/hd-glasses-app/.env.dev @@ -1,8 +1,9 @@ VUE_APP_MAP_URL='http://82.157.23.170:8600/geoserver' VUE_APP_MAP_AUTHKEY='9b488ac6-5309-4ef4-ab99-2180d2da161d' VUE_APP_API="http://work.ii999.live:19002/znzq" -VUE_APP_STATIC_FILE_Prefix='http://43.139.191.204:8908' + +VUE_APP_STATIC_FILE_Prefix='https://119.45.242.222/static_file/' VUE_APP_SRS_URL='webrtc://119.45.242.222/' -VUE_APP_IM_API_URL='https://119.45.242.222/im_api/v1' +VUE_APP_IM_API_URL='https://dev.shudong.xyz/im_api/v1' diff --git a/hd-glasses-app/.env.prod b/hd-glasses-app/.env.prod index 858437b..a6ed255 100644 --- a/hd-glasses-app/.env.prod +++ b/hd-glasses-app/.env.prod @@ -1,7 +1,7 @@ VUE_APP_MAP_URL='http://172.16.2.2:8600/geoserver' VUE_APP_MAP_AUTHKEY='30efbafe-d218-4d77-8200-0207246924be' VUE_APP_API="http://172.16.2.3:19000/znzq" -VUE_APP_STATIC_FILE_Prefix='http://43.139.191.204:8908' +VUE_APP_STATIC_FILE_Prefix='https://172.16.3.19/static_file' VUE_APP_SRS_URL='webrtc://172.16.3.19/' VUE_APP_IM_API_URL='https://172.16.3.19/im_api/v1' diff --git a/hd-glasses-app/package-lock.json b/hd-glasses-app/package-lock.json index f4375be..c775cc2 100644 --- a/hd-glasses-app/package-lock.json +++ b/hd-glasses-app/package-lock.json @@ -3538,6 +3538,11 @@ "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.2.tgz", "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" }, + "dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" + }, "de-indent": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz", diff --git a/hd-glasses-app/package.json b/hd-glasses-app/package.json index cdee00b..e9649f7 100644 --- a/hd-glasses-app/package.json +++ b/hd-glasses-app/package.json @@ -14,6 +14,7 @@ "amfe-flexible": "^2.2.1", "axios": "^1.5.1", "core-js": "^3.8.3", + "dayjs": "^1.11.10", "less": "^4.2.0", "less-loader": "^11.1.3", "lib-flexible": "^0.3.2", diff --git a/hd-glasses-app/public/index.html b/hd-glasses-app/public/index.html index ddb6608..6e26464 100644 --- a/hd-glasses-app/public/index.html +++ b/hd-glasses-app/public/index.html @@ -3,7 +3,7 @@ diff --git a/hd-glasses-app/public/srs/srs.sdk.js b/hd-glasses-app/public/srs/srs.sdk.js index 767ad10..1821ecf 100644 --- a/hd-glasses-app/public/srs/srs.sdk.js +++ b/hd-glasses-app/public/srs/srs.sdk.js @@ -1,4 +1,3 @@ - /** * The MIT License (MIT) * @@ -29,14 +28,66 @@ function SrsRtcPublisherAsync() { var self = {}; + self.cameraIndex=0 + + self.cameraDevices = [] + + self.url="" + // https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia self.constraints = { audio: true, video: { + deviceId:{ + exact:"136e115ef37b7ec8361207a61d42cd39818381aa0e99728e35eb9746bedce6b4" + }, width: {ideal: 320, max: 576} } }; + self.initDevices = async function () { + // await navigator.mediaDevices.enumerateDevices().then(gotDevices).catch(handleError); + } + + function gotDevices(deviceInfos) { + let option = {} + // Handles being called several times to update labels. Preserve values. + for (let i = 0; i !== deviceInfos.length; ++i) { + const deviceInfo = deviceInfos[i]; + const option = document.createElement('option'); + option.value = deviceInfo.deviceId; + if (deviceInfo.kind === 'audioinput') { + console.log(option) + console.log(deviceInfo) + } else if (deviceInfo.kind === 'audiooutput') { + console.log(option) + console.log(deviceInfo) + } else if (deviceInfo.kind === 'videoinput') { + self.cameraDevices.push(deviceInfo) + } else { + console.log('Some other kind of source/device: ', deviceInfo); + } + } + } + + function handleError(error) { + console.log('navigator.getUserMedia error: ', error); + } + + self.changeCamera = async function(){ + // console.log('navigator.getUserMedia') + // console.log(self.cameraDevices) + self.cameraIndex=self.cameraIndex+1==self.cameraDevices.length?0:self.cameraIndex+1 + let deviceId={ + exact:"" + } + deviceId.exact=self.cameraDevices[self.cameraIndex].deviceId + self.constraints.video.deviceId=deviceId + + self.publish(self.url) + + console.log(self.constraints) + } // @see https://github.com/rtcdn/rtcdn-draft // @url The WebRTC url to play with, for example: // webrtc://r.ossrs.net/live/livestream @@ -59,12 +110,17 @@ function SrsRtcPublisherAsync() { // or any other information, will pass-by in the query: // webrtc://r.ossrs.net/live/livestream?vhost=xxx // webrtc://r.ossrs.net/live/livestream?token=xxx - self.publish = async function (url) { + self.publish = async function (url,constraints={}) { + + self.url=url; + var conf = self.__internal.prepareUrl(url); self.pc.addTransceiver("audio", {direction: "sendonly"}); self.pc.addTransceiver("video", {direction: "sendonly"}); - var stream = await navigator.mediaDevices.getUserMedia(self.constraints); + + + var stream = await navigator.mediaDevices.getUserMedia(constraints); // @see https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/addStream#Migrating_to_addTrack stream.getTracks().forEach(function (track) { @@ -156,7 +212,7 @@ function SrsRtcPublisherAsync() { return { apiUrl: apiUrl, streamUrl: streamUrl, schema: schema, urlObject: urlObject, port: port, - tid: Number(parseInt(new Date().getTime()*Math.random()*100)).toString(16).slice(0, 7) + tid: Number(parseInt(new Date().getTime() * Math.random() * 100)).toString(16).slice(0, 7) }; }, parse: function (url) { @@ -300,14 +356,14 @@ function SrsRtcPlayerAsync() { // or any other information, will pass-by in the query: // webrtc://r.ossrs.net/live/livestream?vhost=xxx // webrtc://r.ossrs.net/live/livestream?token=xxx - self.play = async function(url) { + self.play = async function (url) { var conf = self.__internal.prepareUrl(url); self.pc.addTransceiver("audio", {direction: "recvonly"}); self.pc.addTransceiver("video", {direction: "recvonly"}); var offer = await self.pc.createOffer(); await self.pc.setLocalDescription(offer); - var session = await new Promise(function(resolve, reject) { + var session = await new Promise(function (resolve, reject) { // @see https://github.com/rtcdn/rtcdn-draft var data = { api: conf.apiUrl, tid: conf.tid, streamurl: conf.streamUrl, @@ -317,15 +373,16 @@ function SrsRtcPlayerAsync() { $.ajax({ type: "POST", url: conf.apiUrl, data: JSON.stringify(data), - contentType:'application/json', dataType: 'json' - }).done(function(data) { + contentType: 'application/json', dataType: 'json' + }).done(function (data) { console.log("Got answer: ", data); if (data.code) { - reject(data); return; + reject(data); + return; } resolve(data); - }).fail(function(reason){ + }).fail(function (reason) { reject(reason); }); }); @@ -337,7 +394,7 @@ function SrsRtcPlayerAsync() { }; // Close the player. - self.close = function() { + self.close = function () { self.pc && self.pc.close(); self.pc = null; }; @@ -383,7 +440,7 @@ function SrsRtcPlayerAsync() { return { apiUrl: apiUrl, streamUrl: streamUrl, schema: schema, urlObject: urlObject, port: port, - tid: Number(parseInt(new Date().getTime()*Math.random()*100)).toString(16).slice(0, 7) + tid: Number(parseInt(new Date().getTime() * Math.random() * 100)).toString(16).slice(0, 7) }; }, parse: function (url) { @@ -496,7 +553,7 @@ function SrsRtcPlayerAsync() { self.stream = new MediaStream(); // https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/ontrack - self.pc.ontrack = function(event) { + self.pc.ontrack = function (event) { if (self.ontrack) { self.ontrack(event); } @@ -511,7 +568,7 @@ function SrsRtcFormatSenders(senders, kind) { var codecs = []; senders.forEach(function (sender) { var params = sender.getParameters(); - params && params.codecs && params.codecs.forEach(function(c) { + params && params.codecs && params.codecs.forEach(function (c) { if (kind && sender.track.kind !== kind) { return; } diff --git a/hd-glasses-app/src/assets/media/call_down.png b/hd-glasses-app/src/assets/media/call_down.png new file mode 100644 index 0000000000000000000000000000000000000000..5d2ad511c03f19c2666bec5d8f90e45d3a6d2249 GIT binary patch literal 1489 zcmd6n`#;lr9LGQ3*=81*a@#oUJnHc{gmhYJ${1lTkHZcJ$6Ckqs3e!;9C8icl;)OF zI;U(z%6ODTm|J679$m1N%Q?%TaojVb$eo>?|Ka>_et5s1kJm5n*DtTvJDcu9)4>w3 z0013N4_7}m;eQ8%R&TLmXqOsLtRKw<@Fk`*0HAU`U7deO{AsQjitayva~r!w^+iy$ zmiE?v1Npe5>`LBUUZvPoT|ZkpHm-`>_6pED9VJ!Sj%ANssh{4>xTJqH8P$$~M{pPb z;h2|3My)i|3X9YY!BYV;h?uzg1|Wz{hz@ZO8V5QIFlKEBVSwRN7Zz?qNNNl!gZ)IC z2r{g24j0e-ww*&{93D@2VGQJ-r+ZY#u#}b8Y*V8-iJnDonUi-JNtWR*! z7y`(diNAWUbHUJfp8B9LtzoD8)-iqf_KdvCA-{JtD@_NZF`8MG4+DChs@6IeZ~nI$0m)#@eN(+8gS@1k%MKG7{kDPnq5{h({5pB2mLqu-MuaI^}F(yN4yEM-h$% zoty0>%?bg3AB#97eS_ve7MUN+@$r?2KB5c>Pi`Flu3gbhOq3-*JfKaLyvGVFt&-?d zLB%G>K+~P_2x9~_%rRH>^O&qqs|9+?^*ytl?3q+~K!KnRI6hpP$2}-iCevg);D8Or z@NB?Z(^ypTNEz?g5#Y5&dFpb#p-PmhTc!z$x9B0m#R=7VO@RFReaMmXf$Q>w&qZ+; zCKRV4Rv7~=w6bl%R@QP=Yp%4O-9a%(gjm8!CxzL1r(xV>G0ft#nf{lIz=^4_qZ%!} z++#`cW*%+4Pw!&KDz(7qeQB)MOk3Zhle)IVAFsWLyV(?XbPo`0Q=Tm~8)?~x39Q4* z4)Y*g5V_b67W{{}Xa`VJU;{S6p(ki09Ma99O>*&ndKO)PHDL$O^5CADv%noF@SU6$ zO{8eAbyuD4^;<=pf$qb=V}9Fi2PgRBm-^$0%}jQBLWF9hN1fhH%#HJBpgawhTw-50 z01EM?=iGuc9~4HHjF%8#8;i4G+AL=+OYIo7m7St2$kTn<4MfVsZ|636&$J&~6bu{5 z;tlANcC8&9OZ~pFsVT~&VL3q$*%SHxF@!}PTG3!wR?GRRZM7`{c}$aYXT5EKb#N*E ztz&$CBQ}lpyvLiG`vygQjhMzZHuEXbeQk1NlxcW{YCpgtm-EeCy&?=r8w@h zkyB7i=B(susdAygX2@TjQQMeJ8oalld{M@BZ6%3ZF@J2VI&I!nW}aU7{L8D&QSF+Y z6^oAKiCI74q-he9*3neuPLKd2Tt9nnB%{)|w?9GICp2I2*weV&u+Ml_Y*8`4elmlz zU7l+RB6a-aFD;26X3&4h8dyY%bX>qlJ#RV~&}Fd66(9=teOCucYoH?-2<|Jn9|loF zHKK6{z@xZH5%6>L5D^J{QgTXAAXBHw83VY>`jj02YZ7xA2gq}l$%a7x@Cf?r|Bt~` YdSJoR8w}N?O8ujOr<;!}--VU&4~&18o&W#< literal 0 HcmV?d00001 diff --git a/hd-glasses-app/src/assets/media/camera_close.png b/hd-glasses-app/src/assets/media/camera_close.png new file mode 100644 index 0000000000000000000000000000000000000000..32d51f64e9f1c576fe85ea20922bbbe281bb2a3a GIT binary patch literal 812 zcmV+{1JnG8P)Mc{K~#7F?cITG zn?MxC@kb}f2K5Ntpzb7XC+G<22FV6?H|PfL2;G2ekZ$mLpF$*u0C$Js?!o(h60#H{ zeB56K#}Gw?h=_=Yh=_=YMl`7_s_LikfaR%anm1r(_?;qFsnaN8nL3Oj)~T~7vIXiWidYfG@-_0jizs46Hy-y<#EPpi zxsD?9<_=d~u^&fSN^e|lqe$MIA;eF8I~Of}F1H#Oo69JYK3^E`*#6)CHO$C{-9?f3 zJRSA@O(A_3xz)tRT}7D~*FobUUacAg+(a1|3(gadnrHPO;37(I4E+;!sv<#P_ffjn z#d)ID`HBUBy+^s|?TQ8ge$6s%G)U~ethvrQ5v6IGzv1DFEOg&j*xorje3uBq|jI7$rf;AiyXQrGo&YOsEkA7-dAQAiyXCY6byD>8TwA z80CtEAiyXcD?xx!#8wb+AH`Y_a2>^B5O5pCY7np*<+oU%^_aRGe6>!i^A*3QzBDsY z2G(me-{ymWi6{f>9l~<2d3F&5sz;ev7hz6mFTI~2P&JCg=PBhL-(3ZPYEdM8zNXGE zC%Ki{QzeSz&s#stMOXTR9Se#_k$H26JLEsdwx7FEtBOW3Lv8aHMeXwyMYq9E6x|LV zQFL4OA0=Z4tk`6foa-TvvMpyVcs-?xFrWwJJ7pWcr)(Lc7{n+BF^WN%QCeN%n_HTe z8Rds8$ntGK)y()vych-(tn+|RT%#sIr->_Zdd{z7~ZpFgzU(Y|OeEaRGmww>WqWD`*lbxA>Cc{9a z$V&Cu%OY==q(Aog9CZ7JnCr&{XQG&IoV%Z~|MT;lT)}x$0<{h-fA;;{|JB@GPI*s^-?f_mL@DOL!gQU9VIZhIEz!H{ysF z-&XZ-Tv({lwbXaJnO3SpgK|X6hNMqUl1>5(+64|Rla|i*ZDFvDY|+w-<#j(2rYxAS zKtgHGB&UwKY)S__3|%aAm#*Uvef=%he}iAe`uA23clar+VUIY{US>8em)nHnLgERh zw>yHKT{<>B_usslzelb0+nYtNglH90T; j_V$y1dqGJ81}0oI|FgDoy0ZE|e~^%;tDnm{r-UW|tVQe0 literal 0 HcmV?d00001 diff --git a/hd-glasses-app/src/assets/media/mute-fill.png b/hd-glasses-app/src/assets/media/mute-fill.png new file mode 100644 index 0000000000000000000000000000000000000000..5ae9c74582943bb31a1c8487b2bca64e9e1894d0 GIT binary patch literal 1280 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 Y|I*rUzT-Zp&Hw-a07*qoM6N<$f_wx*g8%>k literal 0 HcmV?d00001 diff --git a/hd-glasses-app/src/assets/media/voice_open.png b/hd-glasses-app/src/assets/media/voice_open.png new file mode 100644 index 0000000000000000000000000000000000000000..9a1e3a19bd9dd1d193d6be5306924af28890f699 GIT binary patch literal 1286 zcmai!`BTyf0L8zUctAv%nIa|LsEcOiXzK-t0U2bJT2=}kt7~N*C{*g2t`w!VAzqYM zu3(MpW?`w3khPYqitXgB8A_U6QWjx(Ed9PSJM($(&3k{q znSeXM2ED7in6lA*J!j~^dgm7nIU%^K5WHdS8az0~dD|B6Eq2#m>;ZEi?;B*oTq_KZ z?C?P3HxZNmA=?A7cbAu@YGvR|{dx-y!<@rF+Ik3#0LYgVpza3 zF7N%x(_$h8ygE{E@@}M+N#2EMQqQ=CzM{tA#j;I<+~CRnfZ&y+?dzr?4cLIlU(Q21 z+}x`?@XB~6yjdMeD`ZU5aML08K0PhuXZ+q{DbKSn4A+`w9}DV|GK6NY>uf(eoF9ut z41KHar1YQZ6_Q$vqvsv(cgDBQFXAsW3<7cUleg16UtpYS!`2*8D#%iGMKS#%L_p~W zzswV01bSC#{yk*l7JpgjH;kXFTt0KaTeK8Ge0G1`TMcB2rx8A^!|!5iN^j3!mo z>Z5HIUo(`eN|v3p2K34Xn`+IW4__q=8|yKz2r5)8i`@XZe*i8w>7BX!cA;n2bt1mnB<(zngeY!8?%Q&Vh#!2jy@oSiho;Ov{ zT4Z6Y>;iXfz-3}BQ|80{7;Rp>$4ku-sK};#=|C)+P-XS@pi#%4HOOR6qYWo%%p4l^ z+2xbrYRB+l>#=R}*&BKE6b<;{)Sm4onI~~O&$6RrVhw_AU78SX zdxO6BO`*vX*NeNKgU(P-itMbVsWV-a<;{GJrNrUkT%fix3pAt(k3Y4iFBmFCgS0Ts zLFFL7JJib!n;CgC9#;W6B>G#GwTe{Lm4oB-RIF!Q;=V)~E80>CoxnAFK<|{|4}W$% zO6z~W;+38BDX}nPC_1b>LS~WK8ht$BD}TV;&3GQk!n{rNJlB0ee}lnBy^gj+V)41^ z-Z|Q3jok&=&9caAfxvMzvnsSKL4nQ>ke_f;Z|!~12(E8l$7NL|QWcMtYzYuc&91sB zRr%zP)-QyogS_#v?jJ>uj&)3#-?E3oA~3@ggmx5F=~95>#z^)fmfd{r*5_(Uqt~I0 z_I0j^WWmFh%308+ujj_tks`T#`u4Kb_Szb6lykawTU6BybDqPW>?Rpz(sw*`=csDvgwJ@;RFTt=_} literal 0 HcmV?d00001 diff --git a/hd-glasses-app/src/pages/call_room.vue b/hd-glasses-app/src/pages/call_room.vue index 4040bc2..8b53e25 100644 --- a/hd-glasses-app/src/pages/call_room.vue +++ b/hd-glasses-app/src/pages/call_room.vue @@ -1,17 +1,38 @@