openvidu-live-captions: remove bug with participantInfo on transcriptions
This commit is contained in:
parent
12b2c3720a
commit
cc4f43e887
@ -57,30 +57,21 @@ async function joinRoom() {
|
||||
}
|
||||
);
|
||||
|
||||
room.registerTextStreamHandler("lk.transcription", async (reader, participantInfo) => {
|
||||
room.registerTextStreamHandler("lk.transcription", async (reader, participantInfo) => {
|
||||
const message = await reader.readAll();
|
||||
const isFinal = reader.info.attributes["lk.transcription_final"] === "true";
|
||||
const trackId = reader.info.attributes["lk.transcribed_track_id"];
|
||||
|
||||
if (isFinal) {
|
||||
// Due to a bug in LiveKit Server the participantInfo object may be empty.
|
||||
// You can still get the participant owning the audio track like below:
|
||||
let participant;
|
||||
if (localParticipant.audioTrackPublications.has(trackId)) {
|
||||
participant = room.localParticipant;
|
||||
} else {
|
||||
participant = room.remoteParticipants.values().find(p => p.audioTrackPublications.has(trackId));
|
||||
}
|
||||
|
||||
const captionsTextarea = document.getElementById("captions");
|
||||
const speaker = participantInfo.identity == room.localParticipant.identity
|
||||
? "You" : participantInfo.identity;
|
||||
const timestamp = new Date().toLocaleTimeString();
|
||||
const participantIdentity =
|
||||
participant == room.localParticipant ? "You" : participant.identity;
|
||||
captionsTextarea.value += `[${timestamp}] ${participantIdentity}: ${message}\n`;
|
||||
const captionsTextarea = document.getElementById("captions");
|
||||
captionsTextarea.value += `[${timestamp}] ${speaker}: ${message}\n`;
|
||||
captionsTextarea.scrollTop = captionsTextarea.scrollHeight;
|
||||
}
|
||||
}
|
||||
);
|
||||
);
|
||||
|
||||
try {
|
||||
// Get the room name and participant name from the form
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user