У меня есть приложение iOS, которое на данный момент просто воспроизводит видео с помощью AVFoundation из пользовательской библиотеки. Я бы хотел установить ориентацию устройства в зависимости от соотношения сторон видео. Если это портретное видео, я бы хотел установить портретную ориентацию, если стандарт 16: 9 или 4: 3, то, конечно, альбомную, чтобы на экране не было много потерянного места в черных полосах. по обе стороны от видео.
Я решил, что могу определить соотношение сторон и, следовательно, ориентацию, получив размеры видео:
if width > height:
landscape
else:
portrait
Однако это оказывается сложнее, чем я представлял. У меня есть объект AVPlayer
, и я сначала изучил его свойство метаданных, но, по-видимому, это не те метаданные, которые мне нужны. Затем я обнаружил, что AVPlayer.presentationSize может содержать информацию, которую я ищу, но когда я распечатал ее - прямо перед вызовом play()
- чтобы взглянуть на нее, я получил следующее: Optional((0.0, 0.0))
Если не считать того, как я могу сам проанализировать заголовки видеофайлов, чтобы попытаться получить доступ к этой информации, есть ли где-нибудь в API, где это доступно мне? Поиск в Google дает много информации о том, как указать размер видео при захвате, но не много, если вообще ничего об этой конкретной проблеме.