diff --git a/imeeting-h5/src/components/preview/MeetingPreviewView.tsx b/imeeting-h5/src/components/preview/MeetingPreviewView.tsx index bac65f9..08c9165 100644 --- a/imeeting-h5/src/components/preview/MeetingPreviewView.tsx +++ b/imeeting-h5/src/components/preview/MeetingPreviewView.tsx @@ -180,7 +180,19 @@ export default function MeetingPreviewView({ () => buildMeetingAnalysis(meeting?.analysis, meeting?.summaryContent, meeting?.tags || ""), [meeting?.analysis, meeting?.summaryContent, meeting?.tags], ); - const participants = useMemo(() => splitDisplayItems(meeting?.participants), [meeting?.participants]); + const participants = useMemo(() => { + const list = splitDisplayItems(meeting?.participants); + if (list.length > 0) return list; + + const uniqueSpeakers = new Set(); + for (const item of transcripts) { + const speakerKey = item.speakerName || item.speakerLabel || item.speakerId; + if (speakerKey) { + uniqueSpeakers.add(speakerKey); + } + } + return Array.from(uniqueSpeakers); + }, [meeting?.participants, transcripts]); const tags = useMemo(() => splitDisplayItems(meeting?.tags), [meeting?.tags]); const playbackAudioUrl = useMemo(() => resolveMeetingPlaybackAudioUrl(meeting), [meeting]); const statusMeta = STATUS_META[meeting?.status || 0] || {