Веб-приложение — iPad webkitEnterFullscreen — Программное полноэкранное видео

http://sandbox.solutionsbydesign.com/i-screenplay/h5/

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

http://developer.apple.com/library/safari/#documentation/AudioVideo/Reference/HTMLVideoElementClassReference/HTMLVideoElement/HTMLVideoElement.html Содержит дополнительную информацию об этом.


person Rezen    schedule 13.01.2011    source источник
comment
Вы когда-нибудь догадывались об этом? Я хотел бы знать, как это сделать. Спасибо!   -  person Drew Baker    schedule 04.03.2011
comment
sandbox.solutionsbydesign.com/i-screenplay/zepto-3.html Это последняя демо-версия, которую я построил. Итак, из того, что я прочитал на сайте Apple, полноэкранный режим можно запустить только при воспроизведении видео. Я не мог программно перейти в полноэкранный режим. Кажется, с Sencha можно, я не уверен, но хочу изучить их настройку.   -  person Rezen    schedule 05.03.2011


Ответы (4)


Это лучшее, что я смог придумать.

Настройте свой тег видео и используйте CSS, чтобы поместить его за пределы экрана где-нибудь (его нельзя установить для отображения: нет). Я использовал абсолютное позиционирование, чтобы переместить его за верхний левый угол экрана.

Затем используйте этот JS:

$('.popup.ipad a').click(function() {

        var currentID = $(this).closest('.player').find('video').attr('id');
        var videoContainer = document.getElementById(currentID);
        var newSrc = $(this).attr('href');

        videoContainer.src = newSrc;
        videoContainer.webkitEnterFullscreen();
        videoContainer.play();
});

Он отлично воспроизводится в полноэкранном режиме, но когда пользователь нажимает «Готово» для выхода, видео будет продолжать воспроизводиться за пределами экрана (так что вы услышите звук).

Итак, мне нужно выяснить, как прослушивать событие, которое запускается при касании «Готово» (я даже не уверен, что для этого есть событие). Или используйте метод, описанный здесь, и запускайте его каждую секунду, чтобы проверить, используется ли полноэкранный режим. Но у меня не было большого успеха, независимо от того, что я делаю, я получаю ошибки.

Надеюсь, это поможет вам найти некоторые ответы. Если это так, дайте мне знать!

person Drew Baker    schedule 07.03.2011
comment
Вы хотите прослушивать события «webkitbeginfullscreen» и «webkitendfullscreen», когда пользователи входят и выходят из полноэкранного режима соответственно. - person syaz; 06.04.2011
comment
Я считаю, что это решит вашу проблему intheloftstudios.com/blog/< /а> - person Rudy Lee; 17.01.2014

Секрет в том, что вы не можете перейти в полноэкранный режим, пока метаданные видео не будут загружены. В документы Apple указывают:

Это свойство [webkitSupportsFullscreen] также имеет значение false, если загружены метаданные или не запущено событие loadmetadata, а также если файлы содержат только звук».

Итак, чтобы запустить полноэкранный режим в нужное время, просто создайте прослушиватель событий для события loadedmetadata:

videoContainer.addEventListener('loadedmetadata', function() {
    if (videoContainer.webkitEnterFullscreen) {
        videoContainer.webkitEnterFullscreen();
    }
});

Вооружившись этим, вы должны иметь возможность программно добавлять и воспроизводить полноэкранные видео на iOS, независимо от того, используете ли вы видеоконтейнер «вне экрана», о котором упоминал Дрю, или динамически добавляя теги видео.

person kiddailey    schedule 19.12.2013
comment
+1 - это единственное, что мне помогло, спасибо. - person Andy E; 22.09.2014

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

@Drew Baker Вот пост, который я сделал прошлой ночью о полноэкранном режиме: http://johncblandii.com/2011/07/html5-video-fullscreen.html.

person johncblandii    schedule 29.07.2011

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

Возможно, я делаю это неправильно, но вот как я заставил это работать для меня (на ipad air, iphone 5, galaxy 3, nexus 7... все, кроме ipad 2, где видео еще не выходит на полный экран, но будет играть)

Чтобы воспроизвести видео, пользователь должен напрямую на что-то щелкнуть. Каждый раз, когда я использую JQUERY, он просто не работает на устройствах iOS. Я думаю, что iOS очень чувствительна к отказу от прямых кликов. Итак, вы помещаете обработчик onclick непосредственно на элемент, который вы хотите, чтобы они щелкнули, например так:

<div onclick='openAndPlay(event);' id='video_layover' ></div>

function openAndPlay(event) { 

    myvideo.play();
    myvideo.webkitEnterFullscreen();

    return false;
}

Я обнаружил, что порядок важен. Сначала игра, потом полноэкранный запрос. Попробуйте это и посмотрите, работает ли это для вас. Возврат false может быть не нужен.

person Peter Gardner    schedule 09.01.2014
comment
изменение .play() до того, как webkitEnterFullscreen исправит мою проблему. - person Christopher Marshall; 16.04.2014