Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Opmerking
RTT is een nalevingsvereiste voor toegankelijkheid voor spraak- en videoplatformen in de EU vanaf 30 juni 2025. Zie Richtlijn 2019/882 voor meer informatie.
Integreer REAL Time Text (RTT) in uw beltoepassingen om de toegankelijkheid te verbeteren en ervoor te zorgen dat alle deelnemers effectief kunnen communiceren tijdens vergaderingen.
RTT stelt gebruikers die moeite hebben met spreken in staat om actief deel te nemen door hun berichten te typen, die vervolgens in bijna realtime worden uitgezonden naar andere deelnemers aan de vergadering. Deze functie werkt naadloos samen met bestaande ondertitels en zorgt ervoor dat getypte berichten snel worden geleverd zonder de conversatiestroom te verstoren.
Overzicht van de Real-Time Tekstfunctie
Real Time Text (RTT) vereenvoudigt communicatie voor gebruikers die mogelijk moeite hebben om te spreken tijdens gesprekken. Door gebruikers in staat te stellen hun berichten te typen, zorgt RTT ervoor dat iedereen in de vergadering betrokken en geïnformeerd kan blijven. Berichten worden verzonden via datakanalen (ID 24) en zijn altijd actief en verschijnen automatisch wanneer het eerste bericht wordt verzonden.
Op ondersteunde platforms kunnen RTT-gegevens worden weergegeven naast bijschriften die zijn afgeleid van Spraak-naar-tekst, en bieden ze een uitgebreide weergave van alle communicatie tijdens een gesprek.
Opmerking
RTT voor PSTN of Teams-interop is momenteel niet beschikbaar
Naamgevingsconventies
Verschillende platforms kunnen verschillende terminologie gebruiken voor RTT-gerelateerde eigenschappen. De volgende tabel bevat een overzicht van de verschillen:
Mobiel (Android/iOS) | Ramen (C#) |
---|---|
Typ | Soort |
Informatie | Bijzonderheden |
Deze aliassen zijn functioneel gelijkwaardig en worden gebruikt om consistentie over verschillende platforms te behouden.
Klasse RealTimeTextInfo/Details
De RealTimeTextInfo
-klasse (of RealTimeTextDetails
op Windows) omvat informatie over elk RTT-bericht. In de volgende tabel ziet u de belangrijkste eigenschappen:
Eigendom | Beschrijving |
---|---|
SequenceId |
Unieke identificatie voor de berichtenreeks. |
Text |
De inhoud van het RTT-bericht. |
Sender |
Informatie over de afzender van het bericht. |
ResultType /Kind |
Geeft aan of het bericht gedeeltelijk of definitief is. |
IsLocal |
Bepaalt of een lokale gebruiker het bericht heeft verzonden. |
ReceivedTime |
Tijdsaanduiding wanneer het bericht werd ontvangen. |
UpdatedTime |
Tijdstempel wanneer het bericht voor het laatst is bijgewerkt. |
Modellen
Naam | Beschrijving |
---|---|
RealTimeText-functie | API voor RealTimeText |
RealTimeTextInfo | Gegevensstructuur ontvangen voor elke RealTimeText-gebeurtenis |
RealTimeTextReceivedEventHandler | Callback-definitie voor het verwerken van de gebeurtenis RealTimeTextReceivedEventType |
RealTimeText-functie ophalen
let realTimeTextFeature: SDK.RealTimeTextFeature = call.feature(SDK.Features.RealTimeText);
Abonneren op listeners
Voeg een listener toe voor RealTimeText-gegevens die ontvangen zijn
Het geretourneerde RealTimeTextInfo-gegevensobject verwerken. Idealiter zou u dit bij handler ingesteld hebben zodra de oproep is verbonden.
Opmerking: het object bevat een resultType prop die aangeeft of de gegevens een gedeeltelijke tekst of een definitieve versie van de tekst zijn. ResultType Partial
geeft aan dat het om live-berichten gaat die nog kunnen veranderen, terwijl Final
aangeeft dat het voltooide berichten betreft waar geen verdere wijzigingen meer op volgen.
const realTimeTextReceivedHandler: SDK.RealTimeTextReceivedEventHandler = (data: SDK.RealTimeTextInfo) => {
/** USER CODE HERE - E.G. RENDER TO DOM
* data.sequenceId
* data.sender
* data.text
* data.resultType
* data.receivedTimestamp
* data.updatedTimestamp
* data.isLocal
*/
// Example code:
// Create a dom element, i.e. div, with id "rttArea" before proceeding with the sample code
let mri: string = '';
let displayName: string = '';
switch (data.sender.identifier.kind) {
case 'communicationUser': { mri = data.sender.identifier.communicationUserId; displayName = data.sender.displayName; break; }
case 'microsoftTeamsUser': { mri = data.sender.identifier.microsoftTeamsUserId; displayName = data.sender.displayName; break; }
case 'phoneNumber': { mri = data.sender.identifier.phoneNumber; displayName = data.sender.displayName; break; }
}
const newClassName = `prefix${mri.replace(/:/g, '').replace(/-/g, '').replace(/\+/g, '')}`;
const rttText = `${(data.receivedTimestamp).toUTCString()} ${displayName ?? mri}: `;
let foundRTTContainer = this.elements.rttArea.querySelector(`.${newClassName}[isNotFinal='true']`);
if (!foundRTTContainer) {
let rttContainer = document.createElement('div');
rttContainer.setAttribute('isNotFinal', 'true');
rttContainer.style['borderBottom'] = '1px solid';
rttContainer.style['whiteSpace'] = 'pre-line';
rttContainer.textContent = rttText + data.text;
rttContainer.classList.add(newClassName);
this.elements.rttArea.appendChild(rttContainer);
setTimeout(() => {
this.elements.rttArea.removeChild(rttContainer);
}, 40000);
} else {
if (data.text === '') {
this.elements.rttArea.removeChild(foundRTTContainer);
}
if (data.resultType === 'Final') {
foundRTTContainer.setAttribute('isNotFinal', 'false');
if (data.isLocal) {
let rttTextField = this.elements.rttMessage;
rttTextField.value = '';
}
} else {
foundRTTContainer.textContent = rttText + data.text;
}
}
};
realTimeTextFeature.on('realTimeTextReceived', realTimeTextReceivedHandler);
RealTimeText live handler verzenden
Als u liveberichten wilt simuleren, moet u een live-handler configureren om RealTimeText te verzenden als de gebruiker typt.
let rttTextField = document.getElementById("rttMessage") as HTMLInputElement;
rttTextField.addEventListener('keyup', (event) => {
await realTimeTextFeature.sendRealTimeText(rttTextField.value);
});
Voltooide RealTimeText verzenden
Zodra u zeker weet dat het bericht is voltooid, bijvoorbeeld dat de gebruiker op het verzenden van een bericht klikt of op Enter drukt, geeft true
u door aan de functie sendRealTimeText.
try {
let rttTextField = document.getElementById("rttMessage") as HTMLInputElement;
await realTimeTextFeature.sendRealTimeText(rttTextField.value, true);
rttTextField.value = '';
} catch (e) {
console.log('ERROR Send RTT failed', e);
}
Afmelden voor listeners
realTimeTextFeature.off('realTimeTextReceived', realTimeTextReceivedHandler);
RealTimeTextInfo Klasse
De RealTimeTextInfo
klasse biedt gedetailleerde informatie over elk realtime tekstbericht.
- afzender: informatie over wie het bericht heeft verzonden.
- sequenceId: unieke id voor het bericht.
- tekst: De inhoud van het bericht.
- resultType: Geeft aan of het bericht gedeeltelijk of voltooid is.
- receivedTimestamp: Timestamp wanneer het bericht is ontvangen.
- updatedTimestamp: Timestamp wanneer het bericht voor het laatst is bijgewerkt.
- isLocal: Geeft aan of het bericht is verzonden door de lokale gebruiker.
Andere koppelingen
- Aan de slag met RTT in de UI-bibliotheek
Modellen
Naam | Beschrijving |
---|---|
RealTimeTextInfo |
Stelt een realtime tekstberichtinvoer voor, inclusief informatie over de afzender, de inhoud van het bericht, de volgorde-ID en de status. |
Verkrijg functie voor realtime tekst
Om toegang te krijgen tot de Real Time Text-functie, haal deze op uit het Call
-object.
RealTimeTextCallFeature rttFeature = call.feature(Features.REAL_TIME_TEXT);
Functiegebruik
Het verzenden van realtime tekstberichten
Koppel een tekstinvoerveld aan de send()
methode om berichten te verzenden terwijl de gebruiker typt.
EditText messageEditText = findViewById(R.id.messageEditText);
messageEditText.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
String text = s.toString();
rttFeature.send(text);
}
// Other overridden methods...
});
Ontvangst van realtime tekstberichten
Abonneer je op het OnInfoReceived
-evenement om inkomende berichten te verwerken.
rttFeature.addOnInfoReceivedListener((eventArgs) -> {
RealTimeTextInfo info = eventArgs.getInfo();
// Update your message list with the new info
updateMessageList(info);
// Clear the text input if the message is local and finalized
if (info.isLocal() && info.getResultType() == RealTimeTextResultType.FINAL) {
messageEditText.getText().clear();
}
});
RealTimeTextInfo Klasse
De RealTimeTextInfo
klasse biedt gedetailleerde informatie over elk realtime tekstbericht.
- Sender: Informatie over wie het bericht heeft verzonden.
- SequenceId: Unieke id voor het bericht.
- Tekst: De inhoud van het bericht.
- ResultType: Geeft aan of het bericht gedeeltelijk of voltooid is.
- ReceivedTime: Tijdstempel waarop het bericht is ontvangen.
- UpdatedTime: Tijdstempel wanneer het bericht voor het laatst is bijgewerkt.
- IsLocal: Geeft aan of het bericht door de lokale gebruiker is verzonden.
Modellen
Naam | Beschrijving |
---|---|
RealTimeTextInfo |
Stelt een realtime tekstberichtinvoer voor, inclusief informatie over de afzender, de inhoud van het bericht, de volgorde-ID en de status. |
Verkrijg functie voor realtime tekst
Open de functie Real-time tekst vanuit uw Call
object:
let rttFeature = call.feature(Features.realTimeText)
Functiegebruik
Het verzenden van realtime tekstberichten
Koppel een tekstinvoerveld aan de send
methode om berichten te verzenden terwijl de gebruiker typt.
@State var messageText: String = ""
TextField("Type your message", text: $messageText)
.onChange(of: messageText) { newText in
rttFeature?.send(newText)
}
Ontvangst van realtime tekstberichten
Abonneer je op het OnInfoReceived
-evenement om inkomende berichten te verwerken.
rttFeature?.addOnInfoReceivedListener { eventArgs in
if let info = eventArgs.info {
// Update your message list with the new info
updateMessageList(info)
// Clear the text input if the message is local and finalized
if info.isLocal && info.resultType == .final {
self.messageText = ""
}
}
}
RealTimeTextInfo Klasse
De RealTimeTextInfo
klasse biedt gedetailleerde informatie over elk realtime tekstbericht.
- Sender: Informatie over wie het bericht heeft verzonden.
- SequenceId: Unieke id voor het bericht.
- Tekst: De inhoud van het bericht.
- ResultType: Geeft aan of het bericht gedeeltelijk of voltooid is.
- ReceivedTime: Tijdstempel waarop het bericht is ontvangen.
- UpdatedTime: Tijdstempel wanneer het bericht voor het laatst is bijgewerkt.
- IsLocal: Geeft aan of het bericht door de lokale gebruiker is verzonden.
Modellen
Naam | Beschrijving |
---|---|
RealTimeTextDetails |
Stelt een realtime tekstberichtinvoer voor, inclusief informatie over de afzender, de inhoud van het bericht, de volgorde-ID en de status. |
Verkrijg functie voor realtime tekst
Haal de Real-time tekstfunctie op van het Call
object:
RealTimeTextCallFeature rttFeature = call.GetRealTimeTextCallFeature();
Functiegebruik
Het verzenden van realtime tekstberichten
Verbind een tekstinvoerveld met de Send
-methode om berichten te verzenden terwijl de gebruiker typt.
TextBox messageTextBox = new TextBox();
messageTextBox.TextChanged += (sender, args) => {
string text = messageTextBox.Text;
rttFeature.Send(text);
};
Ontvangst van realtime tekstberichten
Abonneer je op het DetailsReceived
-evenement om inkomende berichten te verwerken.
rttFeature.DetailsReceived += (sender, e) => {
RealTimeTextDetails details = e.Details;
// Update your message list with the new details
UpdateMessageList(details);
// Clear the text input if the message is local and finalized
if (details.IsLocal && details.Kind == RealTimeTextResultKind.Final) {
messageTextBox.Text = string.Empty;
}
};
RealTimeTextDetails Klasse
De RealTimeTextDetails
-klasse biedt volledige informatie over elk real-time tekstbericht.
- Sender: Informatie over wie het bericht heeft verzonden.
- SequenceId: Unieke id voor het bericht.
- Tekst: De inhoud van het bericht.
- Type: Geeft aan of het bericht gedeeltelijk of definitief is.
- ReceivedTime: Tijdstempel waarop het bericht is ontvangen.
- UpdatedTime: Tijdstempel wanneer het bericht voor het laatst is bijgewerkt.
- IsLocal: Geeft aan of het bericht door de lokale gebruiker is verzonden.
Volgende stappen
- Meer informatie over RTT vindt u in ons conceptuele document voor realtime tekst.
- Meer informatie vindt u in onze documentatie voor aanroepen van Azure Communication Services.
- Meer informatie over ondertiteling.