[英]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.