From f5963f3203e29bc04de0d6aba87bca75698ab676 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=E6=98=B5=E7=A7=B0=E9=87=8D=E8=A6=81=E5=90=97O?= Date: Sat, 14 Mar 2026 11:23:09 +0800 Subject: [PATCH] =?UTF-8?q?fix(meeting):=20=E8=A7=A3=E5=86=B3=E5=AD=A6?= =?UTF-8?q?=E7=94=9F=E7=AB=AF=E5=8A=A0=E5=85=A5=E4=BC=9A=E8=AE=AE=E6=97=B6?= =?UTF-8?q?=E5=B7=B2=E5=AD=98=E5=9C=A8=E7=94=A8=E6=88=B7=E8=A7=86=E9=A2=91?= =?UTF-8?q?=E6=9C=AA=E6=92=AD=E6=94=BE=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 加入会议后检查已存在的远程用户列表 - 为已存在的每个用户调用视频播放确保函数 - 添加调试日志显示已存在用户的 UID 信息 - 确保主次视频窗口及所有远程用户视频正常播放 --- .../meeting-room/meeting-room-student.vue | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/views/meeting/meeting-room/meeting-room-student.vue b/src/views/meeting/meeting-room/meeting-room-student.vue index be357fb..4363806 100644 --- a/src/views/meeting/meeting-room/meeting-room-student.vue +++ b/src/views/meeting/meeting-room/meeting-room-student.vue @@ -577,11 +577,19 @@ screenShareOwnerUid.value = roomData.screenShareOwnerUid; } await meeting.initAndJoin(roomData); + // ✅ 加入后先检查是否有已存在的远程用户 + const existingUsers = meeting.client.value?.remoteUsers || []; + console.log('[学生端] 加入会议,已存在的远程用户:', existingUsers.map(u => u.uid)); + // 等待 DOM 更新后再尝试播放视频 await nextTick(); setTimeout(() => { ensurePrimaryVideoPlaying(primaryUid.value); ensurePrimaryVideoPlaying(secondaryUid.value); + // 如果有已存在的用户,也检查一下 + existingUsers.forEach(user => { + ensurePrimaryVideoPlaying(user.uid); + }); }, 500); initSelfWindowPosition(); }) @@ -642,11 +650,19 @@ } if (classStatus.value === 'in_class') { await meeting.initAndJoin(roomData); + // ✅ 加入后先检查是否有已存在的远程用户 + const existingUsers = meeting.client.value?.remoteUsers || []; + console.log('[学生端] 加入会议,已存在的远程用户:', existingUsers.map(u => u.uid)); + // 等待 DOM 更新后再尝试播放视频 await nextTick(); setTimeout(() => { ensurePrimaryVideoPlaying(primaryUid.value); ensurePrimaryVideoPlaying(secondaryUid.value); + // 如果有已存在的用户,也检查一下 + existingUsers.forEach(user => { + ensurePrimaryVideoPlaying(user.uid); + }); }, 500); initSelfWindowPosition(); } else {