O MPNowPlayingInfoCenter não está reagindo corretamente ao pausar a reprodução
Eu estou tentando obter MPNowPlayingInfoCenter para funcionar corretamente ao pausar a reprodução. (Eu tenho um aplicativo de streaming de música que usa o AVPlayer para reprodução, e estou reproduzindo no meu Apple TV em vez do Airplay.) Tudo, menos a pausa, parece estar refletido corretamente na interface do Apple TV. Estou inicializando assim:
MPNowPlayingInfoCenter *center = [MPNowPlayingInfoCenter defaultCenter];
NSDictionary *songInfo = @{
MPMediaItemPropertyTitle: title,
MPMediaItemPropertyArtist: artist
};
center.nowPlayingInfo = songInfo;
Como estou transmitindo, não tenho informações de duração ao iniciar a reprodução. Quando recebo sinal "pronto" do fluxo, atualizo a duração que aparece corretamente no meu Apple TV:
MPNowPlayingInfoCenter *center = [MPNowPlayingInfoCenter defaultCenter];
NSMutableDictionary *playingInfo = [NSMutableDictionary dictionaryWithDictionary:center.nowPlayingInfo];
[playingInfo setObject:[NSNumber numberWithFloat:length] forKey:MPMediaItemPropertyPlaybackDuration];
center.nowPlayingInfo = playingInfo;
Eu também posso procurar com essa técnica quando o usuário procura a faixa:
[playingInfo setObject:[NSNumber numberWithFloat:length * targetProgress] forKey:MPNowPlayingInfoPropertyElapsedPlaybackTime];
A única coisa que eu não consigo descobrir é como pausar o playhead na minha Apple TV. Quando os toques do usuário pausam na minha interface do usuário, estou tentando fazer algo como:
MPNowPlayingInfoCenter *center = [MPNowPlayingInfoCenter defaultCenter];
NSMutableDictionary *playingInfo = [NSMutableDictionary dictionaryWithDictionary:center.nowPlayingInfo];
[playingInfo setObject:[NSNumber numberWithFloat:0.0f] forKey:MPNowPlayingInfoPropertyPlaybackRate];
center.nowPlayingInfo = playingInfo;
Em vez de pausar, isso busca o playhead de volta ao zero e continua avançando.
Como faço para que o playhead pause corretamente na interface do usuário da minha Apple TV?