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 {