Webrtc Android DTMF Support



我正在尝试基于WebRTC实现Android/iOS应用程序的DTMF。 是否有适用于 Android 的 DTMF API?我尝试调用以下内容:

m_peerConnectionFactory.createdtmfsender(localAudioTrack);
m_peerConnectionFactory.insertDtmf(tone, duration,gap);

我尝试将上述 API 用于 javascript,它在浏览器上运行良好,但无法使其在 Android 上运行。 我还没有在iOS上尝试过,因为我需要先让它在安卓上运行。

请让我知道这在Android/iOS上是否受支持?如果是,任何人都可以帮助我使用正确的 API 吗

使用的版本:铬 74.0.3729.169

我明白了 在安卓和iOS上工作。APIcreatedtmfsender已被弃用,详细信息可在此处找到

安卓代码 :

RtpSender m_audioSender = null;
for (RtpSender sender : m_peerConnection.getSenders()) {
//m_peerConnection is object of webRTC peerconnection
if (sender.track().kind().equals("audio")) {
m_audioSender = sender;
} 
}
if (m_audioSender != null) {
DtmfSender dtmfSender = m_audioSender.dtmf();
dtmfSender.insertDtmf(m_tone, 1000, 500);//Here the timers are in ms

苹果代码

-(void)dtmfTonePlayer: (NSString *)dtmfTone {
RTCRtpSender* m_audioSender = nil ;
for( RTCRtpSender *rtpSender in m_peerConnection.senders){
if([[[rtpSender track] kind] isEqualToString:@“audio”]) {
DLog(@“Assigning audio to rtp sender”);
m_audioSender = rtpSender;
}  
}
if(m_audioSender){
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[queue addOperationWithBlock:^{
BOOL istoneplayed = [m_audioSender.dtmfSender insertDtmf :(NSString *)dtmfTone 
duration:(NSTimeInterval)2 interToneGap:(NSTimeInterval)0.5];
NSLog(@“DTMF Tone played :: [%s]“, istoneplayed ? “true” : “false”);
}];
}
}

相关内容

最新更新