Подтвердить что ты не робот

Как узнать, когда видеоплеер HTML5 входит в полноэкранный режим на iOS/iPads?

Тег HTML5 предлагает пользователю кнопку для включения и выключения полноэкранного режима в Safari для мобильных устройств (iOS).

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

Вот ссылка на API Safari для класса HTMLVideoElement:

http://developer.apple.com/library/safari/#documentation/AudioVideo/Reference/HTMLVideoElementClassReference/HTMLVideoElement/HTMLVideoElement.html#//apple_ref/doc/uid/TP40009356

Мы можем легко узнать, когда видео приостановлено в Javascript, например:

function onload()
{
  var player = document.getElementsByTagName("video")[0];
  player.addEventListener('play',videoPlayHandler,false);
  player.addEventListener('pause',videoPauseHandler,false);
}

Однако у них, похоже, нет событий, когда видео входит в полноэкранный режим.

Мы можем принудительно включить видео в полноэкранный режим в ответ на действие пользователя, вызвав webkitEnterFullscreen(), но это мне не помогает. Мне нужно знать, когда пользователь нажимает на полноэкранную кнопку.

Скрытие элементов управления и замена их собственными настраиваемыми элементами управления звучит как действительно длинное завитое решение.

Другим вариантом, о котором я могу думать, является установка события синхронизации, постоянно проверяющего свойство webkitDisplayingFullscreen, но это выглядит как плохое в плане управления памятью.

Может ли кто-нибудь предложить лучшее решение?

4b9b3361

Ответ 1

После долгих раздумий, друзья наконец указали мне в правильном направлении.

События, которые я искал: webkitbeginfullscreen и webkitendfullscreen

var player = document.getElementsByTagName("video")[0];
player.addEventListener('webkitbeginfullscreen', onVideoBeginsFullScreen, false);
player.addEventListener('webkitendfullscreen', onVideoEndsFullScreen, false);

С этим я могу безопасно захватить, когда пользователь нажимает на полноэкранную кнопку Safari для iPads. Интересно, что те же самые события, похоже, не работают для Safari на iMac (протестированы в версии 5.1.2).

Спасибо Apple за их непоследовательность и часы впустую.