Mam poprawnie włączone audio w tle dla mojej aplikacji (w plist). Odtwarzanie następnego utworu po zakończeniu bieżącej sesji przy użyciu SPPlaybackManager w tle (gdy telefon jest zablokowany/wyłączony) nie działa.Dźwięk w tle z cocoalibspotify
Po zakończeniu bieżącego utworu i zatrzymaniu dźwięku aplikacja nie rozpocznie odtwarzania następnego utworu, dopóki telefon nie zostanie odblokowany, a moja aplikacja ponownie się uruchomi.
Jak to naprawić? Oto fragment kodu, którego używam do rozpoczęcia odtwarzania następnego utworu. Obserwuję, że bieżący utwór staje się zerowy, a następnie rozpoczyna się odtwarzanie następnego utworu. Dziennik pokazuje mi, że następny bieżący utwór jest ustawiany w obiekcie menedżera odtwarzania, ale niestety jest cichy.
- (void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
if([keyPath isEqualToString:@"spotifyPlaybackManager.currentTrack"]){
NSLog(@"%@ %@",keyPath,self.spotifyPlaybackManager.currentTrack);
if(self.spotifyPlaybackManager.currentTrack==nil && self.mode == PlayerModeSpotify){
NSLog(@"PLAY NEXT");
[self.spotifyPlaybackManager playTrack:self.nextSPTrack callback:^(NSError *error){
if(error) TKLog(@"Spotify Playback Error %@",error);
}];
}
[[NSNotificationCenter defaultCenter] postNotificationName:PlayerNowPlayingItemDidChange object:self];
return;
}
[super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
}
konsoli:
spotifyPlaybackManager.currentTrack (null)
PLAY NEXT
spotifyPlaybackManager.currentTrack <SPTrack: 0x60f8390>: Karaoke
Po prostu próbowałem umieścić 'beginBackgroundTaskWithExpirationHandler' bezpośrednio przed wywołaniem 'self.spotifyPlaybackManager playTrack: ...', a kod zawiesza się, gdy tylko próbuje się utworzyć nowe zadanie. Jakieś inne sugestie? – devinross
Moja aplikacja audio (GroovePond) wykonuje wiele zadań w tle podczas odtwarzania dźwięku w tle, takich jak przyjmowanie nowych klientów i aktualizowanie stanu istniejących klientów, a firma Apple wydaje się nie mieć z tym żadnego problemu. Myślę, że ponieważ zadania są bezpośrednio związane z odtwarzaniem audio, są one dozwolone. – Dermot