iOS - powiadomienie o zmianie trasy AVAudioSession w tle
Pomimo wielu postów na ten temat (AVPlayer i AVAudioSession, Ustawianie kategorii AVAudioSession w AppDelegate.m, AvAudioSession nie będzie działać w iOS7?), Nie mogłem rozwiązać tego konkretnego problemu w iOS 7:
- Chcę otrzymywać powiadomienia o zmianie trasy AVAudioSession w tle
- moja aplikacja nie odtwarza żadnej muzyki w żadnym momencie i nie powinna kolidować z innymi aplikacjami odtwarzającymi dźwięk
Ustawić:
- dźwięk włączony w p-list UIBackgroundModes
- w głównym kontrolerze:
// AUDIO
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionMixWithOthers error:nil];
[audioSession setActive:YES error:nil];
// NOTIFICATIONS
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(audioSessionRouteChanged:)
name:AVAudioSessionRouteChangeNotification
object:nil];
Działa to dobrze na pierwszym planie, więc muszę mieć coś prostego, aby włączyć powiadomienia w tle. Próbowałem kilku różnych kategorii, zaczynając od AVAudioSessionCategoryAmbient, bez powodzenia.
Czy istnieje ograniczenie do otrzymywania powiadomień w tle tylko podczas odtwarzania dźwięku?
Dzięki za pomoc!
AKTUALIZACJA Aby móc otrzymywać powiadomienia w tle, musi istnieć odtwarzacz AVPlayer. Niestety nie da się tego zrobić, spodziewaj się, grając cichy utwór, który nie jest akceptowany przez Apple ...