MPNowPlayingInfoCenter reagiert nicht richtig, wenn die Wiedergabe angehalten wird
Ich versuche, MPNowPlayingInfoCenter beim Unterbrechen der Wiedergabe zum ordnungsgemäßen Funktionieren zu bringen. (Ich habe eine Musik-Streaming-App, die AVPlayer für die Wiedergabe verwendet, und ich spiele in meinem Apple TV über Airplay.) Alles außer Pausen scheint in der Apple TV-Benutzeroberfläche korrekt wiedergegeben zu werden. Ich initialisiere es so:
MPNowPlayingInfoCenter *center = [MPNowPlayingInfoCenter defaultCenter];
NSDictionary *songInfo = @{
MPMediaItemPropertyTitle: title,
MPMediaItemPropertyArtist: artist
};
center.nowPlayingInfo = songInfo;
Da ich gerade streame, sind beim Starten der Wiedergabe keine Informationen zur Dauer verfügbar. Wenn ich ein "Bereit" -Signal vom Stream erhalte, aktualisiere ich die Dauer, die auf meinem Apple TV richtig angezeigt wird:
MPNowPlayingInfoCenter *center = [MPNowPlayingInfoCenter defaultCenter];
NSMutableDictionary *playingInfo = [NSMutableDictionary dictionaryWithDictionary:center.nowPlayingInfo];
[playingInfo setObject:[NSNumber numberWithFloat:length] forKey:MPMediaItemPropertyPlaybackDuration];
center.nowPlayingInfo = playingInfo;
Ich kann mit dieser Technik auch suchen, wenn der Benutzer die Spur sucht:
[playingInfo setObject:[NSNumber numberWithFloat:length * targetProgress] forKey:MPNowPlayingInfoPropertyElapsedPlaybackTime];
Was ich NICHT herausfinden kann, ist, wie ich den Abspielkopf auf meinem Apple TV anhalten kann. Wenn der Benutzer in meiner Benutzeroberfläche auf Pause tippt, versuche ich Folgendes zu tun:
MPNowPlayingInfoCenter *center = [MPNowPlayingInfoCenter defaultCenter];
NSMutableDictionary *playingInfo = [NSMutableDictionary dictionaryWithDictionary:center.nowPlayingInfo];
[playingInfo setObject:[NSNumber numberWithFloat:0.0f] forKey:MPNowPlayingInfoPropertyPlaybackRate];
center.nowPlayingInfo = playingInfo;
Anstatt zu pausieren, wird der Abspielkopf auf Null zurückgesetzt und weiterentwickelt.
Wie bringe ich den Abspielkopf dazu, in meiner Apple TV-Benutzeroberfläche korrekt anzuhalten?