Retomar áudio de fundo após o AVAudioPlayer ser pausado
Eu desenvolvi um aplicativo para iPhone que permite que outros aplicativos reproduzam áudio em segundo plano. Para conseguir isso, inicializo minha sessão de áudio assim:
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
Em algum momento do meu aplicativo, forneço um reprodutor de áudio para reproduzir alguns arquivos armazenados no CoreData com o AVAudioPlayer. Quando o usuário aperta o botão play, o áudio de fundo deve ser pausado. Quando o player terminar ou for pausado, o áudio de fundo deve retomar a reprodução.
Ao retomar após o reprodutor terminar a reprodução com
-(void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
[[AVAudioSession sharedInstance] setActive:NO withFlags:AVAudioSessionSetActiveFlags_NotifyOthersOnDeactivation error:nil];
}
funciona como um encanto, fico preso com o currículo depois da pausa. Deve funcionar da mesma maneira dentro do IBAction do botão
-(IBAction)pausePlayer
{
if (self.player.isPlaying) {
[self.player pause];
[[AVAudioSession sharedInstance] setActive:NO withFlags:AVAudioSessionSetActiveFlags_NotifyOthersOnDeactivation error:nil];
}
}
mas eu sempre recebo o mesmo erro:
Unable to deactivate audio session. Error: Error Domain=NSOSStatusErrorDomain Code=560030580 "The operation couldn’t be completed. (OSStatus error 560030580.)"
Alguma sugestão porque é impossível inativar a AudioSession neste caso?