AVAudioRecorder não está gravando em segundo plano após o término da interrupção da sessão de áudio

Estou gravando áudio no meu aplicativo, tanto em primeiro plano quanto em segundo plano. Também lida com AVAudioSessionInterruptionNotification para interromper a gravação quando a interrupção começa e começar novamente quando termina. Embora em primeiro plano funcione conforme o esperado, quando o aplicativo está gravando em segundo plano e eu recebo uma chamada, ele não inicia novamente a gravação após o término da chamada. Meu código é o seguinte:

        - (void)p_handleAudioSessionInterruptionNotification:(NSNotification *)notification
        {
            NSUInteger interruptionType = [[[notification userInfo] objectForKey:AVAudioSessionInterruptionTypeKey] unsignedIntegerValue];

            if (interruptionType == AVAudioSessionInterruptionTypeBegan) {
                if (self.isRecording && !self.interruptedWhileRecording) {

                    [self.recorder stop];

                    self.interruptedWhileRecording = YES;
                    return;
                }
            }

            if (interruptionType == AVAudioSessionInterruptionTypeEnded) {
                if (self.interruptedWhileRecording) {
                    NSError *error = nil;
                    [[AVAudioSession sharedInstance] setActive:YES error:&error];

                    NSDictionary *settings = @{
                                       AVEncoderAudioQualityKey: @(AVAudioQualityMax),
                                       AVSampleRateKey: @8000,
                                       AVFormatIDKey: @(kAudioFormatLinearPCM),
                                       AVNumberOfChannelsKey: @1,
                                       AVLinearPCMBitDepthKey: @16,
                                       AVLinearPCMIsBigEndianKey: @NO,
                                       AVLinearPCMIsFloatKey: @NO
                                       };

                    _recorder = [[AVAudioRecorder alloc] initWithURL:fileURL settings:settings error:nil];

                    [self.recorder record];

                    self.interruptedWhileRecording = NO;
                    return;
                }
            }
        }

Observe que fileURL aponta para o novo arquivo caf em um subdiretório NSDocumentDirectory. O áudio do modo de fundo está configurado. Eu também tentei fazer voip e tocar silêncio, ambos sem sucesso.

O NSError no bloco AVAudioSessionInterruptionTypeEnded é um erro OSStatus 560557684 que não encontrei como resolver.

Qualquer ajuda seria muito apreciada.

questionAnswers(2)

yourAnswerToTheQuestion