@AVAudioPlayer, usando a sessão AmbientSound, não é reproduzido quando o aplicativo está em segundo plano

Se isso estiver no documento da apple, não consegui encontrá-lo - esperando que alguém possa ajudar:

Meu aplicativo reproduz clipes de áudio curtos ocasionais - quero que o áudio se misture com a reprodução de áudio de outros aplicativos em segundo plano como o aplicativo iPod - mas também quero que ele continue reproduzindo esses clipes de áudio quando o aplicativo estiver sendo executado em segundo plano.

Configurei "O aplicativo reproduz áudio" nas configurações dos Modos de plano de fundo necessários em info.plist (o aplicativo também está usando serviços de localização também, para que também esteja definido lá)

@My app configura uma sessão de áudio no applicationDidFinishLaunching:

AudioSessionInitialize (NULL,NULL,NULL,NULL);
UInt32 sessionCategory = kAudioSessionCategory_AmbientSound;
AudioSessionSetProperty (kAudioSessionProperty_AudioCategory,sizeof (sessionCategory),&sessionCategory); 
AudioSessionSetActive(true);

No meu viewWillAppear: método na exibição ativa, tenho:

[super viewWillAppear:animated];
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder]; 

e o manipulador de eventos correspondente e o código endReceivingRemoteControlEvents em viewWillDisappear: conforme discutido emiOS 4: Controles remotos para áudio de fundo

Finalmente, tenho um AVAudioPlayer, configurado da maneira normal, que reproduz um som em determinados eventos

bool successful = [avAudioPlayer play];
if(!successful)
    NSLog(@"did not play");

Quando o aplicativo está em primeiro plano, ele funciona bem e reproduz o áudio - mas quando o aplicativo entra em segundo plano e o aplicativo tenta reproduzir um som, o valor de retorno da [reprodução do avAudioPlayer] é NÃO e o som não é reproduzido - quando volta ao primeiro plano, o áudio volta a funciona

Se eu configurar a sessão, utilizarei

    UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;

Então o áudio é reproduzido em primeiro plano e em segundo plano perfeitamente. Mas o MediaPlayback não é o modo certo para este aplicativo, pois ocasionalmente reproduzo clipes de áudio - o AmbientSound é realmente o modo que devo usar.

O que estou perdendo? Não é possível usar o kAudioSessionCategory_AmbientSound para reproduzir áudio em segundo plano? Nesse caso, não encontrei nada na documentação sobre iss

questionAnswers(1)

yourAnswerToTheQuestion