我已經適當地爲我的應用程序(在plist)啓用背景音頻。在後臺使用SPPlaybackManager完成當前電話後(當電話被鎖定/關閉時)播放下一首曲目不起作用。背景音頻與cocoalibspotify
噹噹前曲目結束並且音頻停止時,應用程序將不會開始播放下一首曲目,直到手機解鎖並且我的應用程序再次變爲活動狀態。
我該如何解決這個問題?以下是我用來開始播放下一首歌曲的一段代碼。我觀察到當前曲目變爲零,然後開始播放下一首曲目。日誌顯示我下一個當前曲目正在播放管理器對象中設置,但它唉聲匿跡。
- (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];
}
控制檯:
spotifyPlaybackManager.currentTrack (null)
PLAY NEXT
spotifyPlaybackManager.currentTrack <SPTrack: 0x60f8390>: Karaoke
我剛剛嘗試在調用'self.spotifyPlaybackManager playTrack:...'前直接放入'beginBackgroundTaskWithExpirationHandler',代碼在嘗試創建新任務時立即暫停運行。還有其他建議嗎? – devinross 2012-07-18 08:32:00
我的音頻應用程序(GroovePond)在播放背景音頻時會執行很多後臺任務,例如接受新客戶端和更新現有客戶端的狀態,並且Apple似乎沒有任何問題。我認爲,因爲這些任務與音頻的回放直接相關,所以它們是允許的。 – Dermot 2013-02-22 02:38:36