A notificação de interrupção do iOS AVAudioSession não está funcionando conforme o esperado

Eu quero saber quando meuAVAudioRecorder está inacessível (por exemplo, quando a música começa a tocar).

ComoaudioRecorderEndInterruption será descontinuado com o iOS 9 em que estou focandoAVAudioSessionnotificação de interrupção (mas nenhuma está funcionando conforme o esperado).

O problema é que a notificação de interrupção nunca é chamada se o aplicativo estava e permanece em primeiro plano quando a interrupção ocorre.

Por exemplo: o usuário inicia e para a reprodução de música sem mover o aplicativo para o segundo plano.

Para detectar quaisquer interrupções que estou usando:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(audioSessionWasInterrupted:) name:AVAudioSessionInterruptionNotification object:nil];
...
- (void)audioSessionWasInterrupted:(NSNotification *)notification {
    if ([notification.name isEqualToString:AVAudioSessionInterruptionNotification]) {
        NSLog(@"Interruption notification");

        if ([[notification.userInfo valueForKey:AVAudioSessionInterruptionTypeKey] isEqualToNumber:[NSNumber numberWithInt:AVAudioSessionInterruptionTypeBegan]]) {
            NSLog(@"InterruptionTypeBegan");
        } else {
            NSLog(@"InterruptionTypeEnded");
        }
    }
}

eu receboInterruptionTypeBegan como esperado, masInterruptionTypeEnded não é chamado se o aplicativo ainda estiver em primeiro plano (ou seja, ele não será chamado até que o aplicativo seja colocado em segundo plano e retorne ao primeiro plano).

Como posso receberInterruptionTypeEnded notificação quando a interrupção ocorre enquanto o aplicativo está em primeiro plano?

questionAnswers(3)

yourAnswerToTheQuestion