Мне нужно знать, когда пользователь нажимает клавишу выхода при просмотре видео HTML5 в полноэкранном режиме. К сожалению, любые настроенные прослушиватели в документе не применяются, поскольку, когда пользователь просматривает видео HTML5 в полноэкранном режиме, система фокусируется на собственном видеоплеере, а не на браузере.
Альтернативой является прослушивание, когда фокус возвращается с родного видеоплеера на браузер, но я не уверен, как мне это зафиксировать.
document.addEventListener('keydown', function (e) { console.log(e.keyCode); }, false);
Вышеприведенное успешно регистрируется в консоли, когда я нажимаю клавиши, пока я в браузере. Как только видео HTML5 переходит в полноэкранный режим, браузер, очевидно, больше не может передавать коды клавиш на консоль.
Я пытаюсь перейти от одного пользовательского интерфейса к другому после выхода из полноэкранного режима.
ИЗМЕНИТЬ
Ответ Потенча был полезен в качестве отправной точки, поэтому я принял его как этот ответ, несмотря на следующие оговорки:
- Он работает только в браузерах Webkit. :-)
- Первоначально определено, что это не работает, поскольку
video.webkitDisplayingFullscreen
равноtrue
всякий раз, когда срабатывает событиеresize
.
Я заставил это работать — только в браузерах Webkit — нажав на кадры анимации, чтобы постоянно следить за изменением значения:
var onFrame, isVideoFullscreen;
onFrame = window.requestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function (fn) {
setTimeout(fn, 1000 / 60);
};
isVideoFullscreen = false;
function frame() {
if (!isVideoFullscreen && video.webkitDisplayingFullscreen) {
// entered fullscreen mode
isVideoFullscreen = true;
} else if (isVideoFullscreen && !video.webkitDisplayingFullscreen) {
// exited fullscreen mode
isVideoFullscreen = false;
}
onFrame(frame);
}
onFrame(frame);