From dd6156c274fdf525da21976bfff59b01059160c8 Mon Sep 17 00:00:00 2001
From: tdg930622 <51816549+tdg930622@users.noreply.github.com>
Date: Wed, 15 Jan 2025 16:11:55 +0800
Subject: [PATCH] =?UTF-8?q?=E8=A7=86=E9=A2=91=E6=B6=88=E6=81=AF=E6=8E=A8?=
=?UTF-8?q?=E9=80=81=EF=BC=8C=E5=AE=8C=E5=96=84=E7=94=A8=E6=88=B7=E9=80=80?=
=?UTF-8?q?=E5=87=BA=E8=A7=86=E9=A2=91=E9=80=BB=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/App.vue | 37 ++++++++-
src/components/VoiceCallDialog.vue | 31 ++++++++
.../mediation-page/components/VideoRoom.vue | 76 ++++++++++++-------
src/services/fetchApi.js | 4 -
src/services/voiceCall.js | 17 +++++
5 files changed, 131 insertions(+), 34 deletions(-)
create mode 100644 src/components/VoiceCallDialog.vue
create mode 100644 src/services/voiceCall.js
diff --git a/src/App.vue b/src/App.vue
index b752e81..608debf 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,13 +1,18 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/mediation-page/components/VideoRoom.vue b/src/pages/mediation-page/components/VideoRoom.vue
index e867564..6266a82 100644
--- a/src/pages/mediation-page/components/VideoRoom.vue
+++ b/src/pages/mediation-page/components/VideoRoom.vue
@@ -301,6 +301,7 @@ export default {
}
await this.trtc.stopLocalAudio();// 停止本地麦克风的采集及发布
await this.trtc.stopLocalVideo();// 停止本地摄像头的采集、预览及发布
+ this.trtc = null;
// await this.trtc.stopScreenShare();// 停止屏幕分享
},
@@ -389,18 +390,25 @@ export default {
}
})
}
- let jsonString = JSON.stringify({behavior: 'offAudio', userId: userId});
- let encoder = new TextEncoder();
- let encoded = encoder.encode(jsonString).buffer;
- console.log(encoded, '---关闭远端声音')
- let decoder = new TextDecoder();
- let decodedString = decoder.decode(encoded);
- let parsedObj = JSON.parse(decodedString);
- console.log(parsedObj, '---解析关闭远端声音');
- await this.trtc.sendCustomMessage({
- cmdId: 1,
- data: encoded
- });
+ let json = {behavior: 'offAudio', userId: userId}
+ let data = {
+ destination: `/topic/video-room/${this.eventDialog.roomId}`,
+ body: JSON.stringify(json)
+ }
+ this.$stompSocket.publish(data)
+
+ // let jsonString = JSON.stringify({behavior: 'offAudio', userId: userId});
+ // let encoder = new TextEncoder();
+ // let encoded = encoder.encode(jsonString).buffer;
+ // console.log(encoded, '---关闭远端声音')
+ // let decoder = new TextDecoder();
+ // let decodedString = decoder.decode(encoded);
+ // let parsedObj = JSON.parse(decodedString);
+ // console.log(parsedObj, '---解析关闭远端声音');
+ // await this.trtc.sendCustomMessage({
+ // cmdId: 1,
+ // data: encoded
+ // });
} catch (error) {
throw error;
}
@@ -419,13 +427,20 @@ export default {
}
})
}
- let jsonString = JSON.stringify({behavior: 'onAudio', userId: userId});
- let encoder = new TextEncoder();
- let encoded = encoder.encode(jsonString).buffer;
- await this.trtc.sendCustomMessage({
- cmdId: 2,
- data: encoded
- });
+
+ let json = {behavior: 'onAudio', userId: userId}
+ let data = {
+ destination: `/topic/video-room/${this.eventDialog.roomId}`,
+ body: JSON.stringify(json)
+ }
+ this.$stompSocket.publish(data)
+ // let jsonString = JSON.stringify({behavior: 'onAudio', userId: userId});
+ // let encoder = new TextEncoder();
+ // let encoded = encoder.encode(jsonString).buffer;
+ // await this.trtc.sendCustomMessage({
+ // cmdId: 2,
+ // data: encoded
+ // });
} catch (error) {
throw error;
}
@@ -434,13 +449,19 @@ export default {
async handleKickOut(userId) {
console.log(userId, '---踢出远端用户')
try {
- let jsonString = JSON.stringify({behavior: 'kickOut', userId: userId});
- let encoder = new TextEncoder();
- let encoded = encoder.encode(jsonString).buffer;
- await this.trtc.sendCustomMessage({
- cmdId: 3,
- data: encoded
- });
+ let json = {behavior: 'kickOut', userId: userId}
+ let data = {
+ destination: `/topic/video-room/${this.eventDialog.roomId}`,
+ body: JSON.stringify(json)
+ }
+ this.$stompSocket.publish(data)
+ // let jsonString = JSON.stringify({behavior: 'kickOut', userId: userId});
+ // let encoder = new TextEncoder();
+ // let encoded = encoder.encode(jsonString).buffer;
+ // await this.trtc.sendCustomMessage({
+ // cmdId: 3,
+ // data: encoded
+ // });
} catch (error) {
throw error;
}
@@ -502,6 +523,9 @@ export default {
if (this.timerId) {
clearInterval(this.timerId);
}
+ if (this.trtc){
+ this.handleKickedOut();
+ }
}
};
diff --git a/src/services/fetchApi.js b/src/services/fetchApi.js
index fb2460a..2b34f71 100644
--- a/src/services/fetchApi.js
+++ b/src/services/fetchApi.js
@@ -47,9 +47,5 @@ const fetchApi = {
viewFullFile: data => {
return service.service.post(`${apiAdmin}upload/full`, data,{hideLoading:true})
},
- // ========================start:: 语音通话SDK======================================
- webCalling: data => {
- return service.service.get(`${apiAdmin}/api/trace/calling/init-web`, data)
- },
}
export default fetchApi;
diff --git a/src/services/voiceCall.js b/src/services/voiceCall.js
new file mode 100644
index 0000000..45a7f43
--- /dev/null
+++ b/src/services/voiceCall.js
@@ -0,0 +1,17 @@
+import service from "./index";
+const apiAdmin = '/mediate/api/trace/calling/'
+const api = {
+ // 初始化SDK
+ webCalling: data => {
+ return service.service.get(`${apiAdmin}init-web`, data)
+ },
+ // 匹配案件列表
+ caseMatchList: data => {
+ return service.service.post(`${apiAdmin}caseMatchList`, data)
+ },
+ // 关联案件
+ caseMatch: data => {
+ return service.service.post(`${apiAdmin}caseMatch`, data)
+ },
+}
+export default api;