Используя html5 видео события на iPhone, как я могу отличить нажатие кнопки «Готово» от простой паузы? - PullRequest
23 голосов
/ 23 июня 2010

У меня есть веб-страница для iPhone, которая использует теги видео HTML5. На iPhone такие встроенные видео воспроизводятся в родном плеере. Я хотел проверить, когда закончилось видео и , когда пользователь отклонил видео кнопкой «Готово». Изначально я попробовал это:

var video = $("#someVideo").get(0);          
video.addEventListener('ended', myFunction);

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

video.addEventListener('pause', myFunction);

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

Кто-нибудь знает, как определить, когда пользователь нажал кнопку «Готово» в плеере iPhone (вместо простой приостановки)?

Ответы [ 3 ]

20 голосов
/ 10 марта 2011

Просто проверьте булево значение webkitDisplayingFullscreen в функции паузы.Нажатие кнопки «Готово» или «Пауза» запускает событие паузы, но кнопка «Готово» добавляет дополнительные крохи, например, из полноэкранного режима.Выполнение этой проверки поможет вам различать нажатия двух кнопок.Пример кода ниже.

<script>
var html5Video = function() {
    return {
        init: function() {
            var video = document.getElementsByTagName('video')[0];
            video.addEventListener('ended', endVideo, false);
            video.addEventListener('pause', pauseVideo, false);
        }
    };
}();

function endVideo() { 
    alert("video ended");
}

function pauseVideo() { 
    var video = document.getElementsByTagName('video')[0];
    if (!video.webkitDisplayingFullscreen)
        endVideo(); 
}

html5Video.init();

</script>
20 голосов
/ 16 ноября 2012

Это то, что вам нужно:

yourplayer.addEventListener('webkitendfullscreen', onPlayerExitFullscreen, false);

И наоборот

yourplayer.addEventListener('webkitbeginfullscreen', onPlayerEnterFullscreen, false);

Вот еще один ответ на ваш вопрос, который я нашел: Как понять, когда HTML5видео плеер переходит в полноэкранный режим на iOS / iPad?

0 голосов
/ 23 июня 2010

Существует событие, которое называется "завершено", которое вы, вероятно, должны использовать, см. http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#event-media-ended.

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