繁体   English   中英

本地来电正在杀死我的VOIP应用程序的音频访问权限

[英]Native incoming call is killing my VOIP app's access to audio

我正在开发一个VOIP应用程序,该程序可以使人们拨打VOIP电话。 每当用户正在进行VOIP通话并在其电话上收到本地通话时,VOIP应用程序的音频就会停止工作。

我已经读过,必须重新初始化AudioSession,并且我正在用这段代码来这样做,但是这没有用。 有什么建议么?

self.callCenter = [[CTCallCenter alloc] init];
[self handleCall];

- (void)handleCall
{
    AVAudioSession *session = [AVAudioSession sharedInstance];

    self.callCenter.callEventHandler = ^(CTCall *call){

    if ([call.callState isEqualToString: CTCallStateConnected])
    {
    }
    else if ([call.callState isEqualToString: CTCallStateDialing])
    {
    }
    else if ([call.callState isEqualToString: CTCallStateDisconnected])
    {
      NSLog(@"Call ended");
       dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 2 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
         [session setActive:YES error:nil];
       });
    }
    else if ([call.callState isEqualToString: CTCallStateIncoming])
    {
      NSLog(@"Call received");
    }
  };
}

我已经在使用SIP库的VoIP App上工作。 如果您还使用相同的库,则在已存在VoIP呼叫的情况下获得本地呼叫的同时,本地呼叫会终止VoIP呼叫音频会话。 因此,在进行本地呼叫时,只需将您的SIP库设置为“静音”,然后在结束本地呼叫后,只需“取消静音”即可。

    pjsua_conf_adjust_rx_level(0 /* pjsua_conf_port_id slot*/, 0.0f); //for mute the audio

    pjsua_conf_adjust_rx_level(0 /* pjsua_conf_port_id slot*/, 1.0f); //for unmute the audio.

我希望这能帮到您。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM