Live-Untertitel — OpenTok.js
Verwenden Sie die OpenTok-API für Live-Untertitel, um die Audio-Untertitelung in Echtzeit für die an einer OpenTok-Sitzung teilnehmenden Sender und Empfänger zu aktivieren.
Die Live-Untertitelung muss auf Sitzungsebene über die Option REST-API.
Live-Untertitelung wird nur unterstützt in weitergeleitete Sitzung.
Dieses Thema umfasst die folgenden Abschnitte:
- Veröffentlichung von Live-Beschriftungen
- Abonnieren von Live-Untertiteln
- Empfang von Live-Untertiteln
- Eigene Live-Titel empfangen
- Beispiel-Applikation
Veröffentlichung von Live-Beschriftungen
Aktivieren von Live-Untertiteln
Ein Verleger kann mit dem optionalen booleschen Wert initialisiert werden publishCaptions Parameter. Der Parameter wird über die Funktion properties Objekt. Dieser Parameter ist standardmäßig auf false gesetzt.
const publisher = OT.initPublisher({ publishCaptions: true });
Dynamisches Umschalten von Live-Untertiteln für einen Verlag
Nachdem Live-Untertitel aktiviert wurden, kann ein Herausgeber das Senden von Untertiteln starten oder beenden, indem er die Funktion publishCaptions Methode. Diese Methode akzeptiert einen booleschen Wert als Parameter.
Der folgende Code zeigt ein Beispiel für das Anhalten von Live-Beschriftungen für einen Verlag.
publisher.publishCaptions(false);
Der folgende Code zeigt ein Beispiel für den Start von Live-Beschriftungen für einen Verlag.
publisher.publishCaptions(true);
Abonnieren von Live-Untertiteln
Ein OpenTok-Abonnent kann entscheiden, ob er Live-Untertitel erhalten möchte oder nicht.
Abonnent subscribeToCaptions Methode
Ein Teilnehmer kann den Empfang von Untertiteln starten oder beenden, indem er die asynchrone subscribeToCaptions Methode. Diese Methode akzeptiert einen booleschen Wert als Parameter.
Die Methode kann unabhängig davon aufgerufen werden, ob der Herausgeber gerade Live-Untertitel veröffentlicht. Der Abonnent erhält die Untertiteldaten, sobald der Herausgeber mit der Veröffentlichung von Untertiteln beginnt.
Der folgende Code zeigt ein Beispiel für den Start von Live-Untertiteln für einen Abonnenten.
try {
await subscriber.subscribeToCaptions(true);
} catch (err) {
console.warn(err);
}
Der folgende Code zeigt ein Beispiel für das Anhalten von Live-Untertiteln für einen Teilnehmer.
try {
await subscriber.subscribeToCaptions(false);
} catch (err) {
console.warn(err);
}
Aktivieren von Live-Untertiteln für einen Teilnehmer
Abonnenten können verifizieren, ob sie die Live-Untertitel eines Herausgebers aktiv abonniert haben, indem sie die isSubscribedToCaptions Methode. Diese Methode hat keine Parameter und gibt einen booleschen Wert zurück
const isSubscribed = subscriber.isSubscribedToCaptions()
console.log(`${isSubscribed} states whether or not a given subscriber is subscribing to live captions`).
Empfang von Live-Untertiteln
Abonnenten erhalten Untertitel über Ereignisse. Das OpenTok-SDK zeigt den Text der Untertitel-Ereignisse nicht an.
Abonnent captionReceived Ereignis
Ein Abonnent, der aktiv Live-Untertitel abonniert hat, sendet captionReceived Veranstaltungen. Die Website captionReceived Ereignisobjekt hat drei Eigenschaften: caption, streamIdund isFinal. streamId ist die ID des Streams, während caption ist der transkribierte Text. isFinal zeigt an, ob die Transkription einer Beschriftung abgeschlossen ist. Dieser Wert ist nur bei der Verwendung von Teilbeschriftungen relevant. Der Entwickler kann wählen, wie und wo der Text der Beschriftung dargestellt werden soll.
subscriber.on('captionReceived', function(event){
console.log(`Caption received for stream ${event.streamId}`);
console.log(`Caption text: ${event.caption}`);
console.log(`Final text: ${event.isFinal}`);
})
Die folgende Abbildung zeigt die Konsolenprotokolle bei der Verwendung von Teiluntertiteln und der Aussage "Dies ist mein Satz" durch einen Herausgeber.
subscriber.on('captionReceived', function(event){
console.log(`The ${event.isFinal ? 'complete' : 'partial'} caption text is: "${event.caption}"`)
})
// The partial caption text is: "This"
// The partial caption text is: "This is"
// The partial caption text is: "This is my"
// The complete caption text is: "This is my sentence"
Eigene Live-Titel empfangen
Das Vonage Client SDK unterstützt nicht den Empfang von Ereignissen für eigene Untertitel durch einen Publisher. Um die eigenen Beschriftungen des Sprechers wiederzugeben, erstellen Sie einen versteckten Abonnenten (für den Stream des lokalen Herausgebers), der auf die Beschriftungsereignisse wartet. Dieser Abonnent sollte nicht mit dem DOM verbunden sein und keine Audioereignisse abonnieren, um ein Echo zu vermeiden. Sie können die Untertitel dann in die Benutzeroberfläche einfügen.
Im Folgenden wird gezeigt, wie ein versteckter Abonnent für den Herausgeber erstellt wird, um seine eigenen Beschriftungen zu erhalten.
const captionOnlySub = session.subscribe(
publisher.stream,
document.createElement('div'),
{
audioVolume: 0,
testNetwork: true, // This option is only needed in OpenTok.js versions below 2.25.1
},
);
captionOnlySub.on('captionReceived', (event) => {
// Do something with the event.caption
});
Anmerkung: Für OpenTok.js 2.25.0 und früher müssen Sie die testNetwork zu true in den Optionen, die an Session.subscribe()aufgrund eines Fehlers.
Beispiel-Applikation
Die opentok-web-samples – Beispiel „Basic-Captions“ nutzt Live-Untertitel in einer Web-App, die mit dem Vonage Client SDK erstellt wurde.