在ios中检测传入的Facetime呼叫

时间:2014-09-08 10:58:56

标签: ios ipad

无论如何都要在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");
};

任何帮助?

1 个答案:

答案 0 :(得分:2)

对于需要暂停播放的每个应用,您都不需要特定于应用的检测。您应该使用AVAudioSession检测任何类型的音频中断并通知您的音乐播放器暂停。

请参阅Apple的文档中的图片和说明:

enter image description here

  

AVAudioSession可让您控制应用的音频行为。你可以:

     
      
  • 为您的应用选择合适的输入和输出路线

  •   
  • 确定您的应用如何整合来自其他应用的音频

  •   
  • 处理其他应用的中断

  •   
  • 自动配置您正在创建的应用类型的音频

  •   

因此,您可以使用AVAudioSession API处理可以是手机通话或FaceTime通话的任何来电,甚至是Viber,Tango,Line等任何第三方。

您还可以查看AddMusic示例应用,看看它是如何实施的。