Я пытаюсь заставить AVPlayer играть на AppleTV с помощью AirPlay. Это кажется простым и, согласно документам Apple, должно поддерживаться.
Вот код:
AVPlayerItem *playerItem = [[AVPlayerItem alloc] initWithAsset:_composition];
playerItem.audioMix = _audioMix;
playerItem.videoComposition = _videoComposition;
_currentPlayer = [[AVPlayer alloc] initWithPlayerItem:playerItem];
[_currentPlayer setAllowsExternalPlayback:YES];
[_currentPlayer setUsesExternalPlaybackWhileExternalScreenIsActive:YES];
[_currentPlayer setAllowsAirPlayVideo:YES];
[_currentPlayer setUsesAirPlayVideoWhileAirPlayScreenIsActive:YES];
[_currentPlayer addObserver:self forKeyPath:@"rate" options:0 context:nil];
[_currentPlayer addObserver:self forKeyPath:@"externalPlaybackActive" options:0 context:nil];
Я заметил одну вещь: время игрока, кажется, не сдвигается вперед, когда я включаю AirPlay, и иногда мне кажется, что оно на самом деле отскакивает на секунду или две назад.
Любые идеи?
Примечания на стороне:
- Композиция построена с использованием AVFoundation, а формат видео - H.264.
- Работает, если я включаю зеркалирование и нажимаю вид на второй экран
- Звук работает, если играть без видео.