WebRTC[21]-WebRTC双音多频DTMF
目录
前言
双音多频,DTMF(Dual Tone Multi-Frequency),是一种应用在电话信号中的技术,它在WebRTC中也存在一定的使用场景。
正文
双音多频,DTMF(Dual Tone Multi-Frequency),是一种应用在电话信号中的技术。这从另一个侧面也说明了WebRTC通讯使用的是通话音量而不是媒体音量,所以WebRTC通讯时音量不能调为0。如果想要实现静音,需要单独处理麦克风采集的音频的数据。
双音多频被全世界范围内使用在按键式电话机上,因其提供更高的拨号速率,迅速取代了传统转盘式电话机使用的拨号脉冲信令。近年来DTMF也应用在交互式控制中,诸如语言菜单、语言邮件、电话银行和ATM终端等。将DTMF信令的产生与检测集成到任一含有数字信号处理器(DSP)的系统中,是一项较有价值的工程应用。
DTMF编解码器在编码时将击键或数字信息转换成双音信号并发送,解码时在收到的DTMF信号中检测击键或数字信息的存在性。电话机键盘上每一个键通过的行频与列频唯一确定。DTMF的编解码方案无需过多的计算量,可以很容易的在DSP系统里与其他任务并发执行。
用外行术语来说,DTMF是我们用来拨打号码的电话号码。DTMF信令可以发生在带内(在会话本身的语音之内)或带外(在外部信令中,而不作为语音会话的一部分)。WebRTC允许将DTMF事件作为RTP数据包的一部分进行发送。
在Android的api接口中,WebRTC已经抽象好了DTMF的相关功能,具体可以参考如下代码:
/**
* Queues a task that sends the provided DTMF tones.
* <p>
* If insertDtmf is called on the same object while an existing task for this
{
checkDtmfSenderExists(); nativeInsertDtmf(nativeDtmfSender, tones, duration, interToneGap);
}
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
WebRTC 作为当下最热门的实时音视频通讯框架,涉及非常多的过程,比如采集、编码、组包、发包、传输、收包、丢包重传、解封装、解码、音视频同步、渲染等,同时还包括很多功能特性,比如ANS、AGC、AEC,REMB、GCC、CNG、FEC、PLI、SVC等,需要一点点深入理解其中的奥秘。