再生を一時停止するときに MPNowPlayingInfoCenter を適切に機能させようとしています。(再生に AVPlayer を使用するストリーミング音楽アプリがあり、Airplay を介して Apple TV で再生しています。) 一時停止以外はすべて、Apple TV UI に正しく反映されているようです。私は次のように初期化しています:
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];
私が理解できないことの 1 つは、Apple TV で再生ヘッドを一時停止する方法です。ユーザーがUIで一時停止をタップすると、次のようなことをしようとしています:
MPNowPlayingInfoCenter *center = [MPNowPlayingInfoCenter defaultCenter];
NSMutableDictionary *playingInfo = [NSMutableDictionary dictionaryWithDictionary:center.nowPlayingInfo];
[playingInfo setObject:[NSNumber numberWithFloat:0.0f] forKey:MPNowPlayingInfoPropertyPlaybackRate];
center.nowPlayingInfo = playingInfo;
一時停止する代わりに、再生ヘッドをゼロに戻して進めます。
Apple TV UI で再生ヘッドを正しく一時停止するにはどうすればよいですか?