Wznów dźwięk w tle po wstrzymaniu odtwarzania AVAudioPlayer
Opracowałem aplikację na iPhone'a, która umożliwia innym aplikacjom odtwarzanie dźwięku w tle. Aby to osiągnąć, inicjuję sesję audio w następujący sposób:
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
W pewnym momencie w mojej aplikacji zapewniam odtwarzacz audio do odtwarzania niektórych plików przechowywanych w CoreData za pomocą AVAudioPlayer. Gdy użytkownik kliknie przycisk odtwarzania, dźwięk w tle powinien zostać wstrzymany. Po zakończeniu odtwarzania lub wstrzymaniu odtwarzania dźwięk w tle powinien zostać wznowiony.
Podczas wznawiania po zakończeniu odtwarzania przez odtwarzacz
-(void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
[[AVAudioSession sharedInstance] setActive:NO withFlags:AVAudioSessionSetActiveFlags_NotifyOthersOnDeactivation error:nil];
}
działa jak urok, utknąłem po wznowieniu po przerwie. Powinien działać w ten sam sposób w IBAction przycisku
-(IBAction)pausePlayer
{
if (self.player.isPlaying) {
[self.player pause];
[[AVAudioSession sharedInstance] setActive:NO withFlags:AVAudioSessionSetActiveFlags_NotifyOthersOnDeactivation error:nil];
}
}
ale zawsze mam ten sam błąd:
Unable to deactivate audio session. Error: Error Domain=NSOSStatusErrorDomain Code=560030580 "The operation couldn’t be completed. (OSStatus error 560030580.)"
Jakieś sugestie, dlaczego w tym przypadku nie można wyłączyć AudioSession?