Я пытаюсь заставить MPNowPlayingInfoCenter работать правильно при приостановке воспроизведения. (У меня есть приложение для потоковой передачи музыки, которое использует AVPlayer для воспроизведения, и я воспроизвожу его на своем Apple TV через Airplay. )Кажется, все, кроме паузы, правильно отображается в пользовательском интерфейсе Apple TV. Я инициализирую его так:
MPNowPlayingInfoCenter *center = [MPNowPlayingInfoCenter defaultCenter];
NSDictionary *songInfo = @{
MPMediaItemPropertyTitle: title,
MPMediaItemPropertyArtist: artist
};
center.nowPlayingInfo = songInfo;
Поскольку я транслирую, у меня нет информации о продолжительности при запуске воспроизведения. Когда я получаю «готовый» сигнал из потока, я обновляю продолжительность, которая правильно отображается на моем Apple TV :
MPNowPlayingInfoCenter *center = [MPNowPlayingInfoCenter defaultCenter];
NSMutableDictionary *playingInfo = [NSMutableDictionary dictionaryWithDictionary:center.nowPlayingInfo];
[playingInfo setObject:[NSNumber numberWithFloat:length] forKey:MPMediaItemPropertyPlaybackDuration];
center.nowPlayingInfo = playingInfo;
. Я также могу искать с помощью этой техники, когда пользователь ищет трек:
[playingInfo setObject:[NSNumber numberWithFloat:length * targetProgress] forKey:MPNowPlayingInfoPropertyElapsedPlaybackTime];
Единственное, что я НЕ могу понять, это как приостановить воспроизведение на моем Apple TV. Когда пользователь нажимает паузу в моем пользовательском интерфейсе, я пытаюсь сделать что-то вроде:
MPNowPlayingInfoCenter *center = [MPNowPlayingInfoCenter defaultCenter];
NSMutableDictionary *playingInfo = [NSMutableDictionary dictionaryWithDictionary:center.nowPlayingInfo];
[playingInfo setObject:[NSNumber numberWithFloat:0.0f] forKey:MPNowPlayingInfoPropertyPlaybackRate];
center.nowPlayingInfo = playingInfo;
Вместо паузы указатель воспроизведения возвращается к нулю и продолжает двигаться вперед.
Как заставить точку воспроизведения правильно приостанавливаться в пользовательском интерфейсе Apple TV?