Видео приостановлено на неактивной вкладке - PullRequest
1 голос
/ 07 апреля 2020

Я реализовал Hacktimer Проект HackTimer , и у меня получилась отличная игра, работающая даже в неактивной вкладке (фон). У меня есть часть с видео, и видео также работает нормально - после активации вкладки в chrome они ускоряются на секунду, чтобы получить идеальный currentDuration. Теперь тот же код больше не работает. Видео go для приостановки режима в момент бездействия. Когда я go возвращаюсь на вкладку, видео начинает воспроизводиться.

Я понятия не имею, что может быть.

Моя ОС: windows Chrome версия: версия 80.0. 3987.149 (Официальная сборка) (64-разрядная версия)

Мой тег html выглядит следующим образом:

  <video id="videoID" muted playsinline
         oncanplaythrough="console.log('video ready');">
    <source src="1.ogv" type="video/ogg">
    <source src="1.mp4" type="video/mp4">
    no support
  </video>

Я просто хочу играть в перманент, как YouTube.

1 Ответ

0 голосов
/ 09 апреля 2020

Единственным решением для последней версии было: API видимости . hackTimer работает нормально все время, но отключение вкладки вызывает pause (). Я просто поставил visibilityChange строку кода события video.play().

Код:

var hidden, visibilityChange; 
if (typeof document.hidden !== "undefined") {  
  hidden = "hidden";
  visibilityChange = "visibilitychange";
} else if (typeof document.msHidden !== "undefined") {
  hidden = "msHidden";
  visibilityChange = "msvisibilitychange";
} else if (typeof document.webkitHidden !== "undefined") {
  hidden = "webkitHidden";
  visibilityChange = "webkitvisibilitychange";
}

var videoElement = document.getElementById("videoElement");

function handleVisibilityChange() {
  if (document[hidden] && videoElement.style.display != 'none') {
    videoElement.play();
  }
}

if (typeof document.addEventListener === "undefined" || hidden === undefined) {
  console.log("This demo requires a browser, such as Google Chrome or Firefox, that supports the Page Visibility API.");
} else {
  // Handle page visibility change   
  document.addEventListener(visibilityChange, handleVisibilityChange, false);

}

Для моего приложения, если видео видно, воспроизводите, но другие люди могут добавить и эту строку:

 if (video.paused) {
   video.play()
}
...