Событие webkitfullscreenchange не запускается на iPad - PullRequest
1 голос
/ 09 декабря 2011

Я работаю над некоторыми элементами управления видео для iPad. Когда пользователь нажимает кнопку, видео воспроизводится и сразу переходит в полноэкранный режим. Когда пользователь нажимает кнопку «Выход из полноэкранного режима», я хочу приостановить воспроизведение видео. Если бы я мог отключить кнопку «Выход из полноэкранного режима» и заставить пользователя использовать кнопку «Готово», я бы сделал это, но это не вариант.

Моя проблема в том, что событие webkitfullscreenchange, похоже, не запускается на iPad. Работает безупречно в Chrome на рабочем столе. Я читал, что браузер iPad не будет запускать ваше событие, если метаданные не были загружены (который не загружается, пока видео не воспроизводится на iPad - предварительная загрузка игнорируется), но я подтвердил, что метаданные были загружены до полноэкранное событие запускается. У кого-нибудь есть идеи по поводу того, почему событие webkitfullscreenchange не будет запускаться на iPad?

<script type="text/javascript">
$(document).ready(function() {
    $(".jqVidLink").click(function(e) {
            e.preventDefault();
            var vidId = $(this).attr("name");
            playPause(document.getElementById(vidId));
    }); 
    $(".jqVideo").each(function() {
        this.addEventListener("webkitfullscreenchange", function(){
            alert("hi2"); //never fires
             if (document.webkitIsFullScreen == false) {
                 playPause(this);
             }
        }, false);
        this.addEventListener("loadedmetadata", function() {
            alert("hi");  //firing
            this.webkitEnterFullscreen();   
        }, false);
    });
});

 function playPause(myVideo) {
    if (myVideo.paused){
        myVideo.play();

    }
    else
        myVideo.pause();
    }

1 Ответ

1 голос
/ 10 декабря 2011

напоминает мне статью, в которой iPad называется новым IE6.Не ожидайте, что браузер iOS будет вести себя как настольное сафари.В качестве обходного пути вы можете показать встроенное видео (-> не с полноэкранным режимом) и добавить собственные элементы управления.Недостатком этого подхода является то, что навигация браузера тратит некоторое вертикальное пространство.с другой стороны, вы можете полностью контролировать то, что происходит.Следуя этой идее, вы можете имитировать полноэкранный режим, поместив видео (и ваши пользовательские элементы управления) в контейнер, который затем должен быть зафиксирован и установлен на 100% по ширине и высоте - я сделал это, добавив класс, которого у вас нетбеспокоиться о предыдущем размере при переключении на нормальный уровень.вместо этого вы просто снова удаляете класс.

Еще одна вещь, о которой следует помнить, если вы хотите сделать это: вы не можете перемещать видео-узел через JS внутри контейнера на iOS.Вместо этого вы должны либо предоставить полную разметку в html, либо клонировать видео-узел, удалить оригинал и вставить клонированный в ваш контейнер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...