MPMoviePlayerController полноэкранный фильм внутри UIWebView - PullRequest
15 голосов
/ 27 апреля 2010

У меня проблема с UIWebView и MPMoviePlayerController: В моем UIWebView есть фильм внутри html (это локальный html-файл), я использую html5 и тег видео для видео. Проблема в том, что пользователь может настроить воспроизведение видео в режиме реального времени непосредственно в html или нажать полноэкранную кнопку, но мне нужно знать, воспроизводит ли видео в полноэкранном режиме.

Я пытался использовать MPMoviePlayerDidEnterFullscreenNotification, но безуспешно.

Кто-нибудь знает, как получить это уведомление от веб-просмотра?

Заранее спасибо

Ответы [ 4 ]

15 голосов
/ 04 октября 2010

Уведомление не отправляется (см. Также это сообщение: Отображается событие при отображении изменений (Youtube MPMoviePlayerViewController) ), но веб-представление сделает что-то хакерское: добавит подпор в корень UIViewController's просмотра, сделать его на весь экран и воспроизвести фильм там.

Сделайте ваш основной UIViewController's своим представлением и перехватите -didAddSubview: и -willRemoveSubview:. Таким образом, вы сможете определить, когда игрок выводится в полноэкранном режиме.

4 голосов
/ 04 ноября 2010

Вы также можете пометить свой основной вид и расширить UIView (или реализовать методы ниже, если у вас есть главный вид):

@implementation UIView (UIViewExtended)
- (void)didAddSubview:(UIView *)subview {
   if (subview.superview.tag == ... ) {
... set some flag here or do some action
   }
}

- (void)willRemoveSubview:(UIView *)subview {
   if (subview.superview.tag == ... ) {
... set some flag here or do some action
   }
}
@end
2 голосов
/ 27 апреля 2010

Если вы встраиваете свой фильм в веб-просмотр с использованием HTML, тогда вам нужно обращаться к своему фильму с помощью Javascript, а не класса MPMoviePlayer.

Взгляните на руководство по сценариям Apple для Quicktime здесь .

Я думаю, что вам требуется свойство GetRectangle(), которое возвращает строку местоположения и размеров фильма в области вставки.

Получив размеры, вы можете передать их обратно в Objective-C из Javascript.

0 голосов
/ 06 января 2012

С Документация Apple :

Событие и свойства в полноэкранном режиме

Safari генерирует событие webkitfullscreenchange, когда элемент входит или выходит из полноэкранного режима. Прослушайте это событие, чтобы обнаружить изменения.

Вы можете проверить свойство document.webkitIsFullScreen, чтобы увидеть, был ли Safari в последний раз входил или выходил из полноэкранного режима. Свойство true в полноэкранном режиме.

Свойство document.webkitCurrentFullScreenElement содержит элемент, который находится в полноэкранном режиме. Используйте это свойство, если у вас есть более одного элемента, который может быть в полноэкранном режиме.

К сожалению, они не работают на iOS. Apple нужно изменить это.

...