RTCDTMFSender: метод insertDTMF()
Базовая Широко доступная
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с января 2020 года.
Метод insertDTMF() интерфейса RTCDTMFSender отправляет тона DTMF удалённому узлу по RTCPeerConnection.
Тоны отправляются асинхронно. Каждый раз, когда тон начинается или заканчивается, событие tonechange отправляется в RTCDTMFSender.
Вы можете вызвать insertDTMF() в любое время, пока соединение активно. Каждый вызов insertDTMF() заменяет все ожидающие тоны в toneBuffer. Вы можете прервать отправку очереди тонов, указав пустую строку ("") в качестве набора тонов для воспроизведения. Так как insertDTMF() заменяет буфер тонов, чтобы добавить к воспроизводимым тонам DTMF, необходимо вызвать insertDTMF() со строкой, содержащей как оставшиеся тоны (сохранённые в toneBuffer), так и новые добавленные тоны вместе.
Синтаксис
insertDTMF(tones) insertDTMF(tones, duration) insertDTMF(tones, duration, interToneGap)
Параметры
tones-
Строка, содержащая коды DTMF, которые необходимо передать получателю. Указание пустой строки в качестве параметра
tonesочищает буфер тонов, прерывая все текущие очереди тонов. Символ запятой,в строке вставляет задержку в две секунды. Например,"12,34"отправит тона для1и2, паузу на две секунды, а затем отправит3и4. Несколько запятых добавляют большую задержку, поэтому,,добавит четыре секунды. durationНеобязательно-
Время в миллисекундах, в течение которого каждый тон DTMF должен длиться. Это значение должно быть между 40 мс и 6000 мс (6 секунд) включительно. По умолчанию 100 мс.
interToneGapНеобязательно-
Продолжительность паузы в миллисекундах между тонами. Браузер будет поддерживать минимальное значение 30 мс (то есть, если вы укажете меньшее значение, будет использовано 30 мс). По умолчанию 70 мс.
Возвращаемое значение
None (undefined).
Исключения
-
InvalidStateErrorDOMException -
Выбрасывается, если тоны DTMF не могут быть отправлены, потому что поток был остановлен или находится в режиме только для чтения или неактивен.
-
InvalidCharacterErrorDOMException -
Выбрасывается, если один или несколько символов в
tonesне являются допустимыми тонами DTMF (0-9,A-Z,#, или,).
Примеры
Использование insertDTMF для отправки тонов DTMF
Этот пример показывает, как использовать метод insertDTMF() для отправки тонов по подключению WebRTC.
Код сначала проверяет, определена ли свойство canInsertDTMF, и если да, использует её для проверки поддержки вставки тонов DTMF. Если функция поддерживается, вызывается insertDTMF() для вставки тона.
if (sender.dtmf.canInsertDTMF) {
const duration = 500;
sender.dtmf.insertDTMF("1234", duration);
} else {
console.log("DTMF function not available");
}
Спецификации
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
insertDTMF |
27 | 79 | 52 | 15 | 13.1 | 27 | 52 | 15 | 13.4 | 1.5 | 4.4 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/RTCDTMFSender/insertDTMF