RTCDTMFSender: insertDTMF() Methode
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.
Die insertDTMF()
-Methode der RTCDTMFSender
-Schnittstelle sendet DTMF-Töne an den entfernten Teilnehmer über die RTCPeerConnection
.
Töne werden asynchron gesendet. Jedes Mal, wenn ein Ton beginnt oder endet, wird ein tonechange
-Ereignis an den RTCDTMFSender
gesendet.
Sie können insertDTMF()
jederzeit aufrufen, solange die Verbindung aktiv ist. Jeder Aufruf von insertDTMF()
ersetzt alle ausstehenden Töne im toneBuffer
. Sie können das Senden der in der Warteschlange befindlichen Töne abbrechen, indem Sie eine leere Zeichenfolge (""
) als Satz von abzuspielenden Tönen angeben. Da insertDTMF()
den Tonpuffer ersetzt, ist es erforderlich, insertDTMF()
mit einer Zeichenfolge aufzurufen, die sowohl die verbleibenden Töne (im toneBuffer
gespeichert) als auch die neuen Töne zusammengefügt enthält, um die in Wiedergabe befindlichen DTMF-Töne zu erweitern.
Syntax
insertDTMF(tones)
insertDTMF(tones, duration)
insertDTMF(tones, duration, interToneGap)
Parameter
tones
-
Eine Zeichenkette, die die zu übertragenden DTMF-Codes an den Empfänger enthält. Eine leere Zeichenfolge als
tones
-Parameter anzugeben, löscht den Tonpuffer und bricht alle derzeit in der Warteschlange befindlichen Töne ab. Ein Komma-Zeichen,
in der Zeichenkette fügt eine zweisekündige Verzögerung ein. Zum Beispiel wird"12,34"
Töne für1
und2
senden, zwei Sekunden pausieren und dann3
und4
senden. Mehrere Kommata fügen eine längere Verzögerung hinzu, sodass,,
vier Sekunden hinzufügt. duration
Optional-
Die Dauer, in Millisekunden, die jeder DTMF-Ton dauern sollte. Dieser Wert muss zwischen 40 ms und 6000 ms (6 Sekunden) liegen. Der Standardwert ist 100 ms.
interToneGap
Optional-
Die Zeitdauer, in Millisekunden, die zwischen den Tönen gewartet werden soll. Der Browser erzwingt einen Mindestwert von 30 ms (das heißt, wenn Sie einen niedrigeren Wert angeben, werden stattdessen 30 ms verwendet). Der Standardwert ist 70 ms.
Rückgabewert
Keiner (undefined
).
Ausnahmen
InvalidStateError
DOMException
-
Wird ausgelöst, wenn die DTMF-Töne nicht gesendet werden können, weil der Track gestoppt wurde oder sich in einem schreibgeschützten oder inaktiven Zustand befindet.
InvalidCharacterError
DOMException
-
Wird ausgelöst, wenn ein oder mehrere Zeichen in
tones
keine gültigen DTMF-Zeichen sind (0-9
,A-Z
,#
oder,
).
Beispiele
Verwendung von insertDTMF zum Senden von DTMF-Tönen
Dieses Beispiel zeigt, wie die insertDTMF()
-Methode verwendet wird, um Töne über eine WebRTC-Verbindung zu senden.
Der Code prüft zuerst, ob die canInsertDTMF
-Eigenschaft definiert ist und verwendet sie, um zu prüfen, ob das Einfügen von DTMF-Tönen unterstützt wird. Wenn die Funktion unterstützt wird, wird insertDTMF()
aufgerufen, um einen Ton einzufügen.
if (sender.dtmf.canInsertDTMF) {
const duration = 500;
sender.dtmf.insertDTMF("1234", duration);
} else {
console.log("DTMF function not available");
}
Spezifikationen
Specification |
---|
WebRTC: Real-Time Communication in Browsers # dom-RTCDTMFSender-insertDTMF |
Browser-Kompatibilität
BCD tables only load in the browser