Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megjegyzés
Az RTT akadálymentességi követelmény a hang- és videoplatformok számára az EU-ban 2025. június 30-tól. További információ: 2019/882 irányelv.
A valós idejű szöveg (RTT) integrálása a hívó alkalmazásokba az akadálymentesség javítása és annak biztosítása érdekében, hogy minden résztvevő hatékonyan kommunikálhasson az értekezletek során.
Az RTT lehetővé teszi, hogy azok a felhasználók, akik nehezen beszélnek, aktívan részt vehessenek az üzeneteik beírásával, amelyeket aztán közel valós időben közvetítenek más értekezlet résztvevőinek. Ez a funkció zökkenőmentesen működik a meglévő feliratok mellett, és biztosítja, hogy a gépelt üzenetek azonnal kézbesítve legyenek a beszélgetési folyamat megzavarása nélkül.
Valós idejű szöveg funkció áttekintése
A valós idejű szöveg (RTT) megkönnyíti a kommunikációt azoknak a felhasználóknak, akik esetleg nehezen beszélnek a hívások során. Azáltal, hogy lehetővé teszi a felhasználók számára az üzenetek beírását, az RTT biztosítja, hogy az értekezlet minden résztvevője aktív és tájékozott maradjon. Az üzenetek az adatcsatornákon (24-os azonosító) keresztül kerülnek továbbításra, és mindig aktívak, és automatikusan megjelennek az első üzenet elküldésekor.
A támogatott platformokon az RTT-adatok megjelenhetnek a Speech to Textből származó feliratok mellett, így átfogó képet kaphatnak a hívás során folytatott összes kommunikációról.
Megjegyzés
A PSTN-hez vagy a Teams Interophoz tartozó RTT jelenleg nem elérhető.
Elnevezési egyezmények
A különböző platformok eltérő terminológiát használhatnak az RTT-hez kapcsolódó tulajdonságokhoz. Az alábbi táblázat összefoglalja a különbségeket:
Mobil (Android/iOS) | Windows (C#) |
---|---|
Típus | Típus |
Információ | Részletek |
Ezek az aliasok funkcionálisan egyenértékűek, és a különböző platformok konzisztenciájának fenntartására szolgálnak.
RealTimeTextInfo/Details osztály
A RealTimeTextInfo
(vagy RealTimeTextDetails
Windows rendszeren) osztály az egyes RTT-üzenetekkel kapcsolatos információkat foglalja magában. Az alábbi táblázat a kulcstulajdonságokat mutatja be:
Tulajdonság | Leírás |
---|---|
SequenceId |
Az üzenetsorozat egyedi azonosítója. |
Text |
Az RTT-üzenet tartalma. |
Sender |
Információ az üzenet feladójáról. |
ResultType /Kind |
Jelzi, hogy az üzenet részleges vagy végleges-e. |
IsLocal |
Meghatározza, hogy egy helyi felhasználó küldte-e az üzenetet. |
ReceivedTime |
Az üzenet fogadásának időbélyege. |
UpdatedTime |
Az üzenet legutóbbi frissítésének időbélyege. |
Modellek
Név | Leírás |
---|---|
ValósIdejűSzövegFunkció | RealTimeText API |
ValósIdejűSzövegInformáció | Minden RealTimeText-eseményhez kapott adatstruktúra |
ValósIdejűSzövegFogadásiEseményKezelő | Visszahívási definíció a RealTimeTextReceivedEventType esemény kezeléséhez |
RealTimeText-funkció lekérése
let realTimeTextFeature: SDK.RealTimeTextFeature = call.feature(SDK.Features.RealTimeText);
Feliratkozás a hallgatókra
Fogadott RealTimeText-adatok figyelőjének hozzáadása
Kezelje a visszaadott RealTimeTextInfo adatobjektumot. Ideális esetben a hívás csatlakozásakor már meglenne a handler beállítás.
Megjegyzés: Az objektum egy resultType prop tulajdonságot tartalmaz, amely jelzi, hogy az adatok részleges szöveg-e vagy a szöveg véglegesített verziója. A ResultType Partial
azokat az élő üzeneteket jelöli, amelyek változhatnak, míg Final
a befejezett üzeneteket a függőben lévő további módosítások nélkül jelzi.
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 élő kezelő küldése
Az élő üzenetküldés szimulálásához be kell állítania egy élő kezelőt a RealTimeText felhasználótípusként való küldéséhez.
let rttTextField = document.getElementById("rttMessage") as HTMLInputElement;
rttTextField.addEventListener('keyup', (event) => {
await realTimeTextFeature.sendRealTimeText(rttTextField.value);
});
Véglegesített RealTimeText küldése
Ha biztos abban, hogy az üzenet véglegesítve lett, például a felhasználó a küldési üzenetre kattint, vagy lenyomja az Enter billentyűt, adja át true
a sendRealTimeText függvénynek.
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);
}
Leiratkozás a hallgatókról
realTimeTextFeature.off('realTimeTextReceived', realTimeTextReceivedHandler);
RealTimeTextInfo osztály
Az RealTimeTextInfo
osztály részletes információkat nyújt minden valós idejű szöveges üzenetről:
- feladó: Információ arról, hogy ki küldte az üzenetet.
- sequenceId: Az üzenet egyedi azonosítója.
- szöveg: Az üzenet tartalma.
- resultType: Azt jelzi, hogy az üzenet részleges vagy véglegesítve van-e.
- receivedTimestamp: Az üzenet fogadásának időbélyege.
- updatedTimestamp: Az üzenet legutóbbi frissítésének időbélyege.
- isLocal: Azt jelzi, hogy az üzenetet a helyi felhasználó küldte-e.
Egyéb hivatkozások
- Az RTT használatának első lépései a felhasználói felületi kódtárban
Modellek
Név | Leírás |
---|---|
RealTimeTextInfo |
Valós idejű szöveges üzenetbejegyzést jelöl, beleértve a feladó adatait, az üzenet tartalmát, a sorozatazonosítót és az állapotot. |
Valós idejű szöveges funkció lekérése
A Valós idejű szöveg funkció eléréséhez kérje le az Call
objektumból:
RealTimeTextCallFeature rttFeature = call.feature(Features.REAL_TIME_TEXT);
Funkcióhasználat
Valós idejű szöveges üzenetek küldése
Az üzenetek továbbításához a metódushoz köt egy szövegbeviteli mezőt, ahogy a felhasználó gépel.
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...
});
Valós idejű szöveges üzenetek fogadása
Iratkozzon fel az eseményre a OnInfoReceived
bejövő üzenetek kezeléséhez:
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 osztály
Az RealTimeTextInfo
osztály részletes információkat nyújt minden valós idejű szöveges üzenetről:
- Feladó: Információ arról, hogy ki küldte az üzenetet.
- SequenceId: Az üzenet egyedi azonosítója.
- Szöveg: Az üzenet tartalma.
- ResultType: Azt jelzi, hogy az üzenet részleges vagy véglegesítve van-e.
- ReceivedTime: Az üzenet fogadásának időbélyege.
- UpdatedTime: Az üzenet legutóbbi frissítésének időbélyege.
- IsLocal: Azt jelzi, hogy az üzenetet a helyi felhasználó küldte-e.
Modellek
Név | Leírás |
---|---|
RealTimeTextInfo |
Valós idejű szöveges üzenetbejegyzést jelöl, beleértve a feladó adatait, az üzenet tartalmát, a sorozatazonosítót és az állapotot. |
Valós idejű szöveges funkció lekérése
A Valós idejű szöveg funkció elérése az Call
objektumból:
let rttFeature = call.feature(Features.realTimeText)
Funkcióhasználat
Valós idejű szöveges üzenetek küldése
Az üzenetek továbbításához a metódushoz köt egy szövegbeviteli mezőt, ahogy a felhasználó gépel.
@State var messageText: String = ""
TextField("Type your message", text: $messageText)
.onChange(of: messageText) { newText in
rttFeature?.send(newText)
}
Valós idejű szöveges üzenetek fogadása
Iratkozzon fel az eseményre a OnInfoReceived
bejövő üzenetek kezeléséhez:
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 osztály
Az RealTimeTextInfo
osztály részletes információkat nyújt minden valós idejű szöveges üzenetről:
- Feladó: Információ arról, hogy ki küldte az üzenetet.
- SequenceId: Az üzenet egyedi azonosítója.
- Szöveg: Az üzenet tartalma.
- ResultType: Azt jelzi, hogy az üzenet részleges vagy véglegesítve van-e.
- ReceivedTime: Az üzenet fogadásának időbélyege.
- UpdatedTime: Az üzenet legutóbbi frissítésének időbélyege.
- IsLocal: Azt jelzi, hogy az üzenetet a helyi felhasználó küldte-e.
Modellek
Név | Leírás |
---|---|
RealTimeTextDetails |
Valós idejű szöveges üzenetbejegyzést jelöl, beleértve a feladó adatait, az üzenet tartalmát, a sorozatazonosítót és az állapotot. |
Valós idejű szöveges funkció lekérése
A Valós idejű szöveg funkció lekérése az Call
objektumból:
RealTimeTextCallFeature rttFeature = call.GetRealTimeTextCallFeature();
Funkcióhasználat
Valós idejű szöveges üzenetek küldése
Szövegbeviteli mező csatlakoztatása a Send
metódushoz az üzenetek felhasználótípusként való továbbításához:
TextBox messageTextBox = new TextBox();
messageTextBox.TextChanged += (sender, args) => {
string text = messageTextBox.Text;
rttFeature.Send(text);
};
Valós idejű szöveges üzenetek fogadása
Iratkozzon fel az eseményre a DetailsReceived
bejövő üzenetek kezeléséhez:
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 Osztály
Az RealTimeTextDetails
osztály átfogó információkat nyújt minden valós idejű szöveges üzenetről:
- Feladó: Információ arról, hogy ki küldte az üzenetet.
- SequenceId: Az üzenet egyedi azonosítója.
- Szöveg: Az üzenet tartalma.
- Típus: Azt jelzi, hogy az üzenet részleges vagy véglegesítve van-e.
- ReceivedTime: Az üzenet fogadásának időbélyege.
- UpdatedTime: Az üzenet legutóbbi frissítésének időbélyege.
- IsLocal: Azt jelzi, hogy az üzenetet a helyi felhasználó küldte-e.
Következő lépések
- További információ az RTT-ről a valós idejű szöveges fogalmi dokumentumunkban.
- Tudjon meg többet az Azure Communication Services hívási dokumentációjából.
- Tudjon meg többet a zárt feliratokról.