RTCDTMFSender: tonechange-Ereignis
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
Das tonechange
-Ereignis wird von der WebRTC API an einen RTCDTMFSender
gesendet, um anzuzeigen, wann DTMF-Töne, die zuvor zum Senden in die Warteschlange gestellt wurden (durch Aufruf von RTCDTMFSender.insertDTMF()
), beginnen und enden.
Um zu bestimmen, welcher Ton begonnen hat oder ob ein Ton aufgehört hat zu spielen, überprüfen Sie den Wert der tone
-Eigenschaft des Ereignisses.
Dieses Ereignis ist nicht abbrüchbar und wird nicht weitergegeben.
Syntax
Verwenden Sie den Ereignisnamen in Methoden wie addEventListener()
oder setzen Sie eine Ereignisbehandlungseigenschaft.
addEventListener("tonechange", (event) => {});
ontonechange = (event) => {};
Ereignistyp
Ein RTCDTMFToneChangeEvent
. Erbt von Event
.
Ereigniseigenschaften
Zusätzlich zu den Eigenschaften von Event
bietet dieses Interface Folgendes:
RTCDTMFToneChangeEvent.tone
Nur lesbar-
Ein String, der den Ton angibt, der zu spielen begonnen hat oder ein leerer String (
""
), wenn der vorherige Ton aufgehört hat zu spielen.
Beispiele
Dieses Beispiel richtet einen Handler für das tonechange
-Ereignis ein, das ein Element aktualisiert, um den derzeit gespielten Ton in seinem Inhalt anzuzeigen, oder, wenn alle Töne gespielt wurden, die Zeichenkette "<none>".
Dies kann mit addEventListener()
erfolgen:
dtmfSender.addEventListener(
"tonechange",
(ev) => {
let tone = ev.tone;
if (tone === "") {
tone = "<none>";
}
document.getElementById("playingTone").innerText = tone;
},
false,
);
Sie können auch einfach die ontonechange
-Ereignisbehandlungseigenschaft direkt setzen:
dtmfSender.ontonechange = (ev) => {
let tone = ev.tone;
if (tone === "") {
tone = "<none>";
}
document.getElementById("playingTone").innerText = tone;
};
Spezifikationen
Specification |
---|
WebRTC: Real-Time Communication in Browsers # event-RTCDTMFSender-tonechange |
Browser-Kompatibilität
BCD tables only load in the browser