我正在开发一个允许人们拨打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");
}
};
}
答案 0 :(得分:0)
我使用SIP库在VoIP App上工作过。如果您也使用相同的库,如果您的VoIP呼叫已经存在,则在接听本机呼叫时,本机呼叫将终止您的VoIP呼叫音频会话。因此,在接听原生电话时,只需要制作"静音"您的SIP库和结束本机通话后,只需" UnMute"就是这样。
PropertyPlaceholderConfigurer
我希望这会对你有所帮助。