AVPlayerLayer - перепрограммировать колесо? - PullRequest
5 голосов
/ 26 ноября 2010

В настоящее время я использую AVPlayer вместе с AVPlayerLayer для воспроизведения некоторого видео.Во время воспроизведения видео я регистрировался для обновления времени каждую 30-ю секунду во время видео.Это используется для рисования графика ускорения в этой точке видео и обновления его вместе с видео.График использует CMTime из видео, поэтому, если я перехожу к другой части видео, график сразу представляет этот момент времени в видео без дополнительной работы.

В любом случае, насколько яя знаю, что если я хочу получить интерфейс, аналогичный тому, что предлагает среда MediaPlayer, мне придется сделать это самому.

Мне интересно, есть ли способ использовать мойAVPlayer с платформой MediaPlayer?(Не то, чтобы я мог видеть.) Или, есть ли способ зарегистрироваться для дополнительных обновлений времени с помощью среды MediaPlayer.

Мой код, если кому-то интересно, следующий:Спасибо!

Ответы [ 3 ]

0 голосов
/ 27 октября 2011

Вы можете использовать https://bitbucket.org/brentsimmons/ngmovieplayer в качестве отправной точки (если она существовала на момент запроса).

Со страницы проекта: «Копирует большую часть поведения MPMoviePlayerViewController - но использует AVFoundation.»

0 голосов
/ 15 мая 2012

Возможно, вы захотите найти класс AVSynchronizedLayer.Я не думаю, что есть много в официальном руководстве по программированию.Вы можете найти информацию здесь и там: дополнительно , Otter Software .

В O'Really Programming iOS 4 (или 5) также есть краткая справка о том, как разрешить квадрату двигаться / останавливаться вдоль линии в синхронизации с анимацией.Другая демонстрация (не много кода) показана во время сессии WWDC 2011 Работа со средствами массовой информации в AV Foundation .

0 голосов
/ 21 сентября 2011

Если вы говорите об окне Chrome, отображаемом MPMoviePlayer, то, боюсь, вы сами пытаетесь создать этот интерфейс.

AFAIK Не существует способа достижения нужного поведения синхронизации с помощью среды MediaPlayer, которая представляет собой простую структуру "play some media".Вы делаете правильные вещи, используя AVFoundation.

Что оставляет вам необходимость создавать пользовательский интерфейс самостоятельно.Мое предложение было бы начать с файла XIB для создания общего макета;Панель инструментов вверху с кнопкой «Готово», большим представлением, представляющим пользовательский вид воспроизведения (с использованием AVPlayerLayer), и отдельным представлением, содержащим ваши элементы управления.

Вам потребуется написать некоторый пользовательский код контроллера дляпоказать / скрыть элементы управления воспроизведением и панель инструментов, если необходимо имитировать интерфейс MPMoviePlayer.

...