From b57c077eb9a79aa18cd4110f8fcbad69d7539880 Mon Sep 17 00:00:00 2001 From: acgist <289547414@qq.com> Date: Sun, 30 Apr 2023 15:09:47 +0800 Subject: [PATCH] =?UTF-8?q?[*]=20=E6=9C=AC=E5=9C=B0=E6=B6=88=E8=B4=B9?= =?UTF-8?q?=E8=80=85=E6=9A=82=E5=81=9C=E4=B8=8D=E5=8F=97=E8=BF=9C=E7=A8=8B?= =?UTF-8?q?=E7=94=9F=E4=BA=A7=E8=80=85=E5=BD=B1=E5=93=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- taoyao-client-media/src/Taoyao.js | 15 +++++- .../src/components/LocalClient.vue | 46 ++++--------------- .../src/components/RemoteClient.vue | 24 +++++++--- .../src/components/SessionClient.vue | 19 ++++++-- taoyao-client-web/src/components/Taoyao.js | 3 ++ 5 files changed, 57 insertions(+), 50 deletions(-) diff --git a/taoyao-client-media/src/Taoyao.js b/taoyao-client-media/src/Taoyao.js index 708da42..1f2ad59 100644 --- a/taoyao-client-media/src/Taoyao.js +++ b/taoyao-client-media/src/Taoyao.js @@ -837,8 +837,12 @@ class Taoyao { consumer.close(); }); consumer.on("producerpause", () => { + // 本地暂停不要操作 + if(consumer.localPaused) { + return; + } console.info("consumer producerpause:", consumer.id); - // consumer.pause(); + consumer.pause(); this.push( protocol.buildMessage("media::consumer::pause", { roomId: roomId, @@ -847,8 +851,12 @@ class Taoyao { ); }); consumer.on("producerresume", () => { + // 本地暂停不要操作 + if(consumer.localPaused) { + return; + } console.info("consumer producerresume:", consumer.id); - // consumer.resume(); + consumer.resume(); this.push( protocol.buildMessage("media::consumer::resume", { roomId: roomId, @@ -936,6 +944,7 @@ class Taoyao { }) ); await consumer.resume(); + consumer.localPaused = false; this.push( protocol.buildMessage("media::consumer::score", { score: consumer.score, @@ -983,6 +992,7 @@ class Taoyao { const room = this.rooms.get(roomId); const consumer = room?.consumers.get(consumerId); if(consumer) { + consumer.localPaused = true; console.info("暂停消费者:", consumerId); await consumer.pause(); } else { @@ -1022,6 +1032,7 @@ class Taoyao { const room = this.rooms.get(roomId); const consumer = room.consumers.get(consumerId); if(consumer) { + consumer.localPaused = false; console.info("恢复消费者:", consumerId); await consumer.resume(); } else { diff --git a/taoyao-client-web/src/components/LocalClient.vue b/taoyao-client-web/src/components/LocalClient.vue index d80177c..e31289f 100644 --- a/taoyao-client-web/src/components/LocalClient.vue +++ b/taoyao-client-web/src/components/LocalClient.vue @@ -5,19 +5,19 @@
{{ client?.name || "" }}
diff --git a/taoyao-client-web/src/components/SessionClient.vue b/taoyao-client-web/src/components/SessionClient.vue index 5581834..c505c0b 100644 --- a/taoyao-client-web/src/components/SessionClient.vue +++ b/taoyao-client-web/src/components/SessionClient.vue @@ -6,11 +6,20 @@{{ client?.name || "" }}
diff --git a/taoyao-client-web/src/components/Taoyao.js b/taoyao-client-web/src/components/Taoyao.js index 1ccd8d0..3cf8dc6 100644 --- a/taoyao-client-web/src/components/Taoyao.js +++ b/taoyao-client-web/src/components/Taoyao.js @@ -431,6 +431,8 @@ class Taoyao extends RemoteClient { password; // 房间标识 roomId; + // 视频质量 + options; // 回调事件 callback; // 请求回调 @@ -864,6 +866,7 @@ class Taoyao extends RemoteClient { ideal: video.frameRate, max: media.maxFrameRate, }; + me.options = Object.keys(media.videos).map(key => ({value: key, label: media.videos[key].resolution})); me.mediaConfig = media; me.webrtcConfig = webrtc; console.debug(