Я создаю HTTP Live Streaming Client для Mac, который будет управлять воспроизведением видео на большом экране.Моя цель - иметь управляющий интерфейс на главном экране и полноэкранное видео на дополнительном экране.
Используя AVFoundation, я успешно смог открыть поток и управлять всеми его аспектами из своего управляющего интерфейсаи я сейчас пытаюсь скопировать видео на дополнительном экране.Это оказалось сложнее, чем я себе представлял ...
На экране управления у меня есть AVPlayerLayer, который отображает видео с AVPlayer.Моя цель состояла в том, чтобы создать еще один AVPlayerLayer и отправить ему один и тот же проигрыватель, чтобы оба проигрывателя одновременно воспроизводили одно и то же видео в двух разных видах.Однако это не работает.
Копая глубже, я нашел это в документах AVFoundation:
Вы можете создавать произвольное количество слоев игрока с одним и тем же объектом AVPlayer.Только последний созданный слой плеера будет отображать видео контент на экране.
Это на самом деле бесполезно для меня, потому что мне нужно, чтобы видео отображалось правильно в обоих видах.
Я могу создать новый экземпляр AVPlayerItem из того же AVAsset, затем создать новый AVPlayer и добавить его в новый AVPlayerLayer, чтобы показывать видео, но они больше не синхронизируются, потому что они два разных проигрывателясоздание двух разных аудиопотоков, воспроизводящих разные части одного и того же потока.
Есть ли у кого-нибудь предложения о том, как получить один и тот же контент AVPlayer в двух разных представлениях?Возможно, какой-то трюк с зеркалированием CALayer?