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

Используя видеообъявления html5 на iPhone, как я могу сказать "Готово" нажать кнопку с простой паузы?

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

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

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

video.addEventListener('pause', myFunction);

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

Кто-нибудь знает, как узнать, когда пользователь нажал кнопку "Готово" в iPhone-проигрывателе (в отличие от паузы)?

4b9b3361

Ответ 1

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

<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>