MPMoviePlayerController с пользовательской кнопкой на панели инструментов

Возможно, вы видели видео через трубку в iPhone.

Обычный MPMoviePlayerController имеет предыдущие, следующие и кнопки воспроизведения/паузы.

У вас в трубке есть еще две кнопки на нем.

= > Добавить в избранное на левой стороне.

= > Отправьте это видео с правой стороны.

Я хочу реализовать то же самое для своего приложения.

Но мне не удалось выяснить свойство или методы, касающиеся - реализации этого.

Как мне нужно на нем кнопки?

  • Когда пользователь просматривает видео, на экране не должно быть кнопок.
  • Когда пользователь нажимает на видео - панель инструментов находится сверху и в центре.
  • На центральной панели инструментов есть три кнопки на ней: Предыдущий - следующий -play/pause
  • Я хочу добавить кнопку рядом с следующей кнопкой и предыдущей кнопкой.

Заранее благодарим за помощь.

Сагар.

Ответ 1

Я не думаю, что вы можете изменить интерфейс представления Apple.
Общий подход будет состоять в том, чтобы воспроизвести ваше видео, а затем после этого показать представление с помощью желаемых кнопок/и/или параметров для пользователя.

Пример этого можно увидеть с помощью приложения YouTube на iPhone. После воспроизведения видео с YouTube, пользователь отправляется на сводный просмотр со ссылками, чтобы снова просмотреть видео, любить его, делиться им и т.д.

Ответ 2

Я бы сказал, что может быть возможно просто установить свойство MPMoviePlayerController movieControlMode на MPMovieControlModeHidden и добавить к нему подвью с вашей собственной коллекцией кнопок, заголовков и т.д. Но MPMoviePlayerController наследует только от NSObject, поэтому вы не могли этого сделать. Возможно, вы можете подклассифицировать MPMoviePlayerController и настроить свой собственный материал при вызове play, но опять же, я полагаю, MPMoviePlayerController будет отображаться как модальный полноэкранный вид и скрыть все, что вы настроите.: -\

Если все, что вы хотите сделать, это беспорядок с внешним видом элементов управления, я знаю, что вы можете обходиться с помощью методов различных объектов drawRect:, чтобы переопределить, как рисуются полосы и кнопки.

Например, при создании категории или подкласса UINavigationBar и реализации drawRect:, как показано ниже, будет создана пользовательская панель навигации:

- ( void )drawRect:( CGRect )rect
{
    [ [ UIImage imageNamed:kSTNavigationBarBackgroundImageName ] drawInRect:CGRectMake( 0.0, 0.0, self.frame.size.width, self.frame.size.height ) ];
}

Это заменяет стандарт Apple на поиск навигационных панелей и заменяет его собственным ресурсом изображения. Мы делаем это, среди прочего, для наших приложений.