Escape Полный экран воспроизводит видео, если видео приостановлено
У меня есть HTML-видео, которое воспроизводится во весь экран, когда пользователь нажимает кнопку воспроизведения. Если пользователь нажимает escape в полноэкранном режиме, все работает правильно - видео перестает воспроизводиться и выходит из полноэкранного режима. Однако, если пользователь приостанавливает воспроизведение видео в полноэкранном режиме, а затем нажимает клавишу escape, видео начинает воспроизводиться снова, вызывая зацикливание звука из видео на странице, которая возвращается при выходе из полноэкранного режима. Мои элементы управления js следующие:
exitHandler: function(){
vid = Video.vid;
$(Video.featuredVideo).toggleClass('featured-video-show');
if (document.webkitIsFullScreen || document.mozFullScreen || document.msFullscreenElement !== null){
if (vid.paused){
vid.play();
}
else {
vid.pause();
}
}
}
Как я могу остановить запуск видео / аудио, если пользователь делает паузу в полноэкранном режиме, а затем нажимает "escape", чтобы выйти из полноэкранного режима?
1 ответ
Создайте переменную для отслеживания того, выходите ли вы (во время выполнения обработчика) в полноэкранный режим или нет, и не запускайте play
команда, если вы действительно выходите из него. Я не думаю, что для этого есть конкретные слушатели событий, поэтому вам, возможно, придется написать интервал для этого. Когда я столкнулся с этой проблемой, я использовал следующую функцию:
var canFullscreen = function(){
return (
!document.fullscreenElement &&
!document.mozFullScreenElement &&
!document.webkitFullscreenElement &&
!document.msFullscreenElement );
}
Эта функция проверяет, можем ли мы в данный момент войти в полноэкранный режим. Если он вернется false
либо полноэкранный режим (старый / странный браузер) отсутствует, либо вы работаете в полноэкранном режиме. Это функция, которую я запустил в интервале, чтобы точно проверить, когда пользователь выходит из полноэкранного режима (и в этот момент обработал выход программно). Если вместо этого вы отслеживаете нажатие кнопки Escape, вы можете включить эту функцию, чтобы определить, входите ли вы в полноэкранный режим или выходите из него.