RTCDTMFSender
interface provides a mechanism for transmitting
DTMF
codes on a
WebRTC
RTCPeerConnection
. You gain access to the connection's
RTCDTMFSender
透过
RTCRtpSender.dtmf
property on the audio track you wish to send DTMF with.
The primary purpose for WebRTC's DTMF support is to allow WebRTC-based communication clients to be connected to a public-switched telephone network (PSTN) or other legacy telephone service, including extant voice over IP (VoIP) services. For that reason, DTMF can't be used between two WebRTC-based devices, because there is no mechanism provided by WebRTC for receiving DTMF codes.
<div id="interfaceDiagram" style="display: inline-block; position: relative; width: 100%; padding-bottom: 11.666666666666666%; vertical-align: middle; overflow: hidden;"><svg style="display: inline-block; position: absolute; top: 0; left: 0;" viewbox="-50 0 600 70" preserveAspectRatio="xMinYMin meet"><a xlink:href="../API/EventTarget.html" target="_top"><rect x="1" y="1" width="110" height="50" fill="#fff" stroke="#D4DDE4" stroke-width="2px" /><text x="56" y="30" font-size="12px" font-family="Consolas,Monaco,Andale Mono,monospace" fill="#4D4E53" text-anchor="middle" alignment-baseline="middle">EventTarget</text></a><polyline points="111,25 121,20 121,30 111,25" stroke="#D4DDE4" fill="none"/><line x1="121" y1="25" x2="151" y2="25" stroke="#D4DDE4"/><a xlink:href="../API/RTCDTMFSender" target="_top"><rect x="151" y="1" width="130" height="50" fill="#F4F7F8" stroke="#D4DDE4" stroke-width="2px" /><text x="216" y="30" font-size="12px" font-family="Consolas,Monaco,Andale Mono,monospace" fill="#4D4E53" text-anchor="middle" alignment-baseline="middle">RTCDTMFSender</text></a></svg></div>
a:hover text { fill: #0095DD; pointer-events: all;}
RTCDTMFSender.toneBuffer
只读
DOMString
which contains the list of DTMF tones currently in the queue to be transmitted (tones which have already been played are no longer included in the string). See
toneBuffer
for details on the format of the tone buffer.
RTCDTMFSender.insertDTMF()
insertDTMF()
starts sending the specified tones. Calling
insertDTMF()
replaces any already-pending tones from the
toneBuffer
. You can abort sending queued tones by specifying an empty string (
""
) as the set of tones to play.
监听这些事件使用
addEventListener()
或通过把事件监听器赋值给
on
eventname
特性为此接口。
tonechange
tonechange
event is sent to the
RTCDTMFSender
instance's event handler to indicate that a tone has either started or stopped playing.
ontonechange
event handler property.
See the article Using DTMF with WebRTC for a full example.
| 规范 | 状态 | 注释 |
|---|---|---|
|
WebRTC 1.0: Real-time Communication Between Browsers
The definition of 'RTCDTMFSender' in that specification. |
候选推荐 |
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
RTCDTMFSender
|
Chrome 27 | Edge ≤79 | Firefox 52 | IE 不支持 No | Opera Yes | Safari ? | WebView Android 4.4 | Chrome Android 27 | Firefox Android 52 | Opera Android Yes | Safari iOS ? | Samsung Internet Android 1.5 |
canInsertDTMF
|
Chrome 27 | Edge ≤79 | Firefox ? | IE 不支持 No | Opera Yes | Safari ? | WebView Android Yes | Chrome Android 27 | Firefox Android ? | Opera Android Yes | Safari iOS ? | Samsung Internet Android 1.5 |
insertDTMF
|
Chrome 27 | Edge ≤79 | Firefox 52 | IE 不支持 No | Opera Yes | Safari ? | WebView Android 4.4 | Chrome Android 27 | Firefox Android 52 | Opera Android Yes | Safari iOS ? | Samsung Internet Android 1.5 |
ontonechange
|
Chrome 27 | Edge ≤79 | Firefox 52 | IE 不支持 No | Opera Yes | Safari ? | WebView Android Yes | Chrome Android 27 | Firefox Android 52 | Opera Android Yes | Safari iOS ? | Samsung Internet Android 1.5 |
toneBuffer
|
Chrome 27 | Edge ≤79 | Firefox 52 | IE 不支持 No | Opera Yes | Safari ? | WebView Android 4.4 | Chrome Android 27 | Firefox Android 52 | Opera Android Yes | Safari iOS ? | Samsung Internet Android 1.5 |
tonechange
event
|
Chrome 27 | Edge ≤79 | Firefox 52 | IE 不支持 No | Opera Yes | Safari ? | WebView Android Yes | Chrome Android 27 | Firefox Android 52 | Opera Android Yes | Safari iOS ? | Samsung Internet Android 1.5 |
完整支持
不支持
兼容性未知
RTCDTMFSender
MediaDevices.getUserMedia()
Navigator.mediaDevices
RTCCertificate
RTCDTMFToneChangeEvent
RTCDataChannel
RTCDataChannelEvent
RTCDtlsTransport
RTCErrorEvent
RTCIceCandidate
RTCIceTransport
RTCPeerConnection
RTCPeerConnectionIceErrorEvent
RTCPeerConnectionIceEvent
RTCRtpReceiver
RTCRtpSender
RTCRtpTransceiver
RTCSctpTransport
RTCSessionDescription
RTCStatsEvent
RTCStatsReport
RTCTrackEvent