Используя видеообъявления html5 на iPhone, как я могу сказать "Готово" нажать кнопку с простой паузы?
У меня есть веб-страница для iPhone, в которой используются теги HTML5. На iPhone такие встроенные видео воспроизводятся в основном проигрывателе. Я хотел проверить, когда видео закончилось, и когда пользователь отклонил видео с помощью кнопки "Готово". Первоначально я пробовал это:
var video = $("#someVideo").get(0);
video.addEventListener('ended', myFunction);
Но это только срабатывало, когда видео разрешалось заканчивать. После некоторых игр с другими событиями (приостановка, остановка, ожидание) я обнаружил, что кнопка "Готово" вызывает событие "пауза". Однако, когда я добавляю это:
video.addEventListener('pause', myFunction);
мой код вызывается как с кнопки "Готово", так и при нажатии пользователем кнопки паузы в элементах управления воспроизведением. Второй случай нежелателен; Мне нужен только первый случай, но события, похоже, не дают мне достаточной информации.
Кто-нибудь знает, как узнать, когда пользователь нажал кнопку "Готово" в iPhone-проигрывателе (в отличие от паузы)?
Ответы
Ответ 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>
Ответ 2
Это то, что вам нужно:
yourplayer.addEventListener('webkitendfullscreen', onPlayerExitFullscreen, false);
И наоборот
yourplayer.addEventListener('webkitbeginfullscreen', onPlayerEnterFullscreen, false);
Вот еще один ответ на ваш вопрос, который я нашел: Как выяснить, когда видеоплеер HTML5 входит в полноэкранный режим на iOS/iPads?
Ответ 3
Существует событие с названием "закончился", которое вы, вероятно, должны использовать, см. http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#event-media-ended.