Spec-Zone.ru › Web APIs

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).

Исключения

InvalidStateError DOMException

Выбрасывается, если тоны DTMF не могут быть отправлены, потому что поток был остановлен или находится в режиме только для чтения или неактивен.

InvalidCharacterError DOMException

Выбрасывается, если один или несколько символов в 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");
}

Спецификации

Спецификация
WebRTC: Реальное общение в браузерах
# dom-RTCDTMFSender-insertDTMF

Совместимость с браузерами

Рабочий стол Мобильные устройства
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

См. также

  • API WebRTC
  • Использование DTMF с WebRTC
  • RTCPeerConnection
  • RTCDTMFSender
  • RTCRtpSender

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API