Uygulamam için (plist'te) arka plan sesini düzgün şekilde etkinleştirdim. Arka planda SPPlaybackManager kullanılarak (telefon kilitlendiğinde/kapandığında) akım tamamlandıktan sonra sonraki parçanın çalınması çalışmaz.Arka plandaki ses kosalibspotify ile
Geçerli parça bittiğinde ve ses durduğunda, uygulama, telefon kilidi açılıncaya kadar sonraki parçayı çalmaya başlamaz ve uygulamam tekrar etkinleşir.
Bunu nasıl düzeltirim? İşte bir sonraki parçayı çalmaya başlamak için kullanıyorum kod snippet. Mevcut parçanın sıfır olduğunu ve sonra bir sonraki parçayı çalmaya başladığını gözlemliyorum. Günlük, oynatma yöneticisi nesnesinde bir sonraki geçerli parçanın ayarlandığını gösterir, ancak alas sessizdir.
- (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];
}
Konsolu:
spotifyPlaybackManager.currentTrack (null)
PLAY NEXT
spotifyPlaybackManager.currentTrack <SPTrack: 0x60f8390>: Karaoke
'self.spotifyPlaybackManager playTrack: ...' ifadesini çağırmadan hemen önce 'beginBackgroundTaskWithExpirationHandler' komutunu kullanmaya çalıştım ve kod yeni bir görev oluşturulmaya çalışılır başlatılmaz çalışmaya devam etmeyi durdurdu. Başka önerileriniz var mı? – devinross
Ses uygulamam (GroovePond), yeni istemcileri kabul etme ve mevcut istemcilerin durumunu güncelleme gibi arka plan seslerini çalarken çok fazla arka plan görevi yerine getiriyor ve Apple'ın bununla ilgili herhangi bir sorunu yok gibi görünüyor. Bence görevler doğrudan ses çalma ile ilgili olduğu için izin verilir. – Dermot