RTCDTMFSender - 提供了一种在 WebRTC RTCPeerConnection 上传输 DTMF 代码的机制
RTCDTMFSender 接口提供了一种在 WebRTC RTCPeerConnection 上传输 DTMF 代码的机制。您可以通过要发送 DTMF 的音轨上的 RTCRtpSender.dtmf 属性来访问连接的 RTCDTMFSender。
WebRTC 的 DTMF 支持的主要目的是允许基于 WebRTC 的通信客户端连接到公共交换电话网(PSTN)或其他传统电话服务,包括现存语音 IP(VoIP)服务。因此,无法在两个基于 WebRTC 的设备之间使用 DTMF,因为 WebRTC 没有提供用于接收 DTMF 代码的机制。
属性
RTCDTMFSender.toneBuffer 只读
一个 DOMString,包含当前要发送的队列中 DTMF 音的列表(已播放的音不再包含在字符串中)。有关音频缓冲区格式的详细信息,请参见 toneBuffer。
方法
RTCDTMFSender.insertDTMF()
给定一个描述一组 DTMF 代码的字符串,以及可选的音调之间的间隔和音调间的间隔,insertDTMF() 开始发送指定的音调。调用 insertDTMF() 会替换 toneBuffer 中所有已经挂起的音调。您可以通过指定一个空字符串("")作为要播放的音频集来中止发送排队的音频。
事件
使用 addEventListener() 或通过为此接口的 oneventname 属性分配事件监听器来监听这些事件:
tonechange
tonechange 事件被发送到 RTCDTMFSender 实例的事件处理程序,以指示音调已经开始或停止播放。也可以使用 ontonechange 事件处理程序属性来处理。
实例
有关完整的实例,请参见文章在 WebRTC 中使用 DTMF。
规范
| 规范 | 状态 | 备注 |
|---|---|---|
| WebRTC 1.0: Real-time Communication Between Browsers RTCDTMFSender 的定义 |
候选推荐 | - |
桌面浏览器兼容性
| 特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|---|
| 基础支持 | 27 | 未知 | 52 | 不支持 | 支持 | 未知 |
canInsertDTMF | 27 | 未知 | 未知 | 不支持 | 支持 | 未知 |
insertDTMF | 27 | 未知 | 52 | 不支持 | 支持 | 未知 |
ontonechange | 27 | 未知 | 52 | 不支持 | 支持 | 未知 |
toneBuffer | 27 | 未知 | 52 | 不支持 | 支持 | 未知 |
tonechange 事件 | 27 | 未知 | 52 | 不支持 | 支持 | 未知 |
移动浏览器兼容性
| 特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
|---|---|---|---|---|---|---|---|
| 基础支持 | 4.4 | 27 | 未知 | 52 | 未知 | 支持 | 未知 |
canInsertDTMF | 支持 | 27 | 未知 | 未知 | 未知 | 支持 | 未知 |
insertDTMF | 4.4 | 27 | 未知 | 52 | 未知 | 支持 | 未知 |
ontonechange | 支持 | 27 | 未知 | 52 | 未知 | 支持 | 未知 |
toneBuffer | 4.4 | 27 | 未知 | 52 | 未知 | 支持 | 未知 |
tonechange 事件 | 支持 | 27 | 未知 | 52 | 未知 | 支持 | 未知 |