RTCDTMFSender:tonechange 事件

Baseline 已广泛支持

此功能已经成熟,并可在许多设备和浏览器版本上使用。自 ⁨2020 年 3 月⁩起,它已在各浏览器中推出。

tonechange 事件由 WebRTC API 发送给 RTCDTMFSender,以指示之前通过调用 RTCDTMFSender.insertDTMF() 排队等待发送的 DTMF 音的开始和结束。

要确定哪个音开始播放,或者哪个音停止播放,请检查事件的 tone 属性的值。

此事件不可取消,也不会冒泡。

语法

在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。

js
addEventListener("tonechange", (event) => { })

ontonechange = (event) => { }

事件类型

RTCDTMFToneChangeEvent。继承自 Event

Event RTCDTMFToneChangeEvent

事件属性

除了 Event 的属性外,此接口还提供以下内容:

RTCDTMFToneChangeEvent.tone 只读

一个指定开始播放的音的字符串,如果前一个音已播放完毕,则为空字符串 ("")。

示例

此示例建立了一个 tonechange 事件的处理器,该处理器会更新一个元素以在其内容中显示当前正在播放的音,或者,如果所有音都已播放完毕,则显示字符串“<none>”。

可以使用 addEventListener() 来实现这一点。

js
dtmfSender.addEventListener("tonechange", (ev) => {
  let tone = ev.tone;
  if (tone === "") {
    tone = "&lt;none&gt;";
  }

  document.getElementById("playingTone").innerText = tone;
});

你也可以直接设置 ontonechange 事件处理器属性。

js
dtmfSender.ontonechange = (ev) => {
  let tone = ev.tone;
  if (tone === "") {
    tone = "&lt;none&gt;";
  }

  document.getElementById("playingTone").innerText = tone;
};

规范

规范
WebRTC:浏览器中的实时通信
# event-RTCDTMFSender-tonechange

浏览器兼容性