iOS:Siri不可用不会返回AVAudioSessionInterruptionOptionShouldResume

我有iOS应用程序处理audio中断与:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(AudioInterrupt:) name:AVAudioSessionInterruptionNotification object: NULL]; 

并在AudioInterrupt:

 - (void)AudioInterrupt:(NSNotification*)notification { NSDictionary *interuptionDict = notification.userInfo; // get the AVAudioSessionInterruptionTypeKey enum from the dictionary NSInteger interuptionType = [[interuptionDict valueForKey:AVAudioSessionInterruptionTypeKey] integerValue]; NSNumber* seccondReason = [[notification userInfo] objectForKey:@"AVAudioSessionInterruptionOptionKey"] ; // decide what to do based on interruption type here... switch (interuptionType) { case AVAudioSessionInterruptionTypeBegan: [[[self pureAudioHandler] audioController] setActive: NO]; NSLog(@"Interruption started"); break; case AVAudioSessionInterruptionTypeEnded: NSLog(@"Interruption ended"); break; } switch ([seccondReason integerValue]) { case AVAudioSessionInterruptionOptionShouldResume: NSLog(@"Resume Audio"); [[[self pureAudioHandler] audioController] configurePlaybackWithSampleRate:44100 numberChannels:2 inputEnabled:NO mixingEnabled:YES]; [[[self pureAudioHandler] audioController] setActive: YES]; break; default: break; } } 

这与警报和Siri工作正常。 但是,如果我没有互联网连接,我按Home键我得到“Siri不可用…”。 AVAudioSessionInterruptionTypeBegan被触发。 按homebutton两次回到应用程序,也没有AVAudioSessionInterruptionTypeEnded或AVAudioSessionInterruptionOptionShouldResume被激发。 任何解决方法?

与7.0.3的iPad迷你视网膜

大量的实验表明,中断并不是所有的时候都应该被触发。 在进入Siri时有时会丢失InterruptionTypeBegan,而这一切都是在当前的testing用例(Unity3D&Kalimba(libpd))上随机发生的。

相反,使用applicationWillResignActive来杀死audio,并使用applicationDidBecomeActive再次启动它,因为这些都是100%的时间。

有趣的是,从Siri(没有wifi,因此“Siri not available …”)出现时,它会在一段时间后将采样率改回原来采样率的一半(24000 ipad mini)。