У меня была та же проблема с SpeakHere, и я нашел это решение методом проб и ошибок.Попробуйте это: избавьтесь от ссылок на воспроизведениеWasInterrupted (закомментировано ниже), но оставьте в других директивах, связанных с игроком.Каким-то образом это снова включает рекордер!Если бы кто-нибудь мог объяснить, почему это работает, я хотел бы знать!
В void interruptListener измените
else if ((inInterruptionState == kAudioSessionEndInterruption)&& THIS->playbackWasInterrupted))
на
else if (inInterruptionState == kAudioSessionEndInterruption)
//&& THIS->playbackWasInterrupted)
и затем закомментируйте или удалитестрока «playWasInterrupted» ниже:
{
// we were playing back when we were interrupted, so reset and resume now
THIS->player->StartQueue(true);
[[NSNotificationCenter defaultCenter] postNotificationName:@"playbackQueueResumed" object:THIS];
// THIS-> PlayWasInterrupted = NO;
}