MPNowPlayingInfoCenter nie reaguje poprawnie podczas wstrzymywania odtwarzania
Próbuję uzyskać MPNowPlayingInfoCenter, aby działało poprawnie podczas wstrzymywania odtwarzania. (Mam aplikację do przesyłania strumieniowego muzyki, która używa AVPlayer do odtwarzania i odtwarzam ją w Apple TV za pomocą Airplay.) Wszystko oprócz pauzy wydaje się być prawidłowo odzwierciedlone w interfejsie użytkownika Apple TV. Inicjalizuję to w ten sposób:
MPNowPlayingInfoCenter *center = [MPNowPlayingInfoCenter defaultCenter];
NSDictionary *songInfo = @{
MPMediaItemPropertyTitle: title,
MPMediaItemPropertyArtist: artist
};
center.nowPlayingInfo = songInfo;
Ponieważ przesyłam strumieniowo, nie mam informacji o czasie trwania po rozpoczęciu odtwarzania. Kiedy otrzymuję sygnał „gotowy” ze strumienia, aktualizuję czas, który wyświetla się poprawnie na moim Apple TV:
MPNowPlayingInfoCenter *center = [MPNowPlayingInfoCenter defaultCenter];
NSMutableDictionary *playingInfo = [NSMutableDictionary dictionaryWithDictionary:center.nowPlayingInfo];
[playingInfo setObject:[NSNumber numberWithFloat:length] forKey:MPMediaItemPropertyPlaybackDuration];
center.nowPlayingInfo = playingInfo;
Mogę również szukać tej techniki, gdy użytkownik szuka utworu:
[playingInfo setObject:[NSNumber numberWithFloat:length * targetProgress] forKey:MPNowPlayingInfoPropertyElapsedPlaybackTime];
Jedyną rzeczą, której NIE mogę się dowiedzieć, jest to, jak zatrzymać odtwarzanie na moim Apple TV. Gdy użytkownik pauzuje w moim interfejsie użytkownika, próbuję zrobić coś takiego:
MPNowPlayingInfoCenter *center = [MPNowPlayingInfoCenter defaultCenter];
NSMutableDictionary *playingInfo = [NSMutableDictionary dictionaryWithDictionary:center.nowPlayingInfo];
[playingInfo setObject:[NSNumber numberWithFloat:0.0f] forKey:MPNowPlayingInfoPropertyPlaybackRate];
center.nowPlayingInfo = playingInfo;
Zamiast wstrzymywać, powoduje to powrót głowicy do zera i jej kontynuowanie.
Jak uzyskać poprawne zatrzymanie głowicy odtwarzania w interfejsie użytkownika Apple TV?