Поддержка Webrt c Android DTMF - PullRequest
       138

Поддержка Webrt c Android DTMF

0 голосов
/ 28 января 2020

Я пытаюсь реализовать DTMF для Android / iOS Приложение, основанное на WebRT C. Есть ли API для DTMF для Android? Я попытался вызвать следующее:

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

Я попытался использовать вышеуказанные API для javascript, и он хорошо работает в браузере, но не может заставить его работать на Android. Я еще не пробовал на iOS, так как мне нужно, чтобы он сначала работал на android.

Пожалуйста, дайте мне знать, поддерживается ли это на Android / iOS или нет? Если да, может кто-нибудь помочь мне с правильной версией API

libjingle: chrome 74.0.3729.169

1 Ответ

0 голосов
/ 10 февраля 2020

Я понял Это работает на android и iOS. Api createdtmfsender устарел, подробности можно найти здесь

Android Код:

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

iOS Код

-(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”);
     }];
     }
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...