无论如何都要在ios中检测传入的Facetime呼叫。我试过CTCallCenter
,但似乎它只适用于手机通话,而不是正面通话。我使用以下代码来检测通话时间,但没有成功。
self.callCenter = [[CTCallCenter alloc] init];
self.callCenter.callEventHandler = ^(CTCall* myCall) {
NSString *call = myCall.callState;
if ([call isEqualToString:CTCallStateDisconnected])
NSLog(@"Call has been disconnected");
else if([call isEqualToString:CTCallStateDialing])
NSLog(@"Call start");
else if ([call isEqualToString:CTCallStateConnected])
NSLog(@"Call has just been connected");
else if([call isEqualToString:CTCallStateIncoming])
NSLog(@"Call is incoming");
else
NSLog(@"None");
};
任何帮助?
答案 0 :(得分:2)
对于需要暂停播放的每个应用,您都不需要特定于应用的检测。您应该使用AVAudioSession
检测任何类型的音频中断并通知您的音乐播放器暂停。
请参阅Apple的文档中的图片和说明:
AVAudioSession
可让您控制应用的音频行为。你可以:
为您的应用选择合适的输入和输出路线
确定您的应用如何整合来自其他应用的音频
处理其他应用的中断
自动配置您正在创建的应用类型的音频
因此,您可以使用AVAudioSession
API处理可以是手机通话或FaceTime通话的任何来电,甚至是Viber,Tango,Line等任何第三方。
您还可以查看AddMusic示例应用,看看它是如何实施的。