Я создал страницу для воспроизведения содержимого HLS на большинстве платформ, по умолчанию использую HTML5 video + HLS.js и откат к флеш-версии проигрывателя (Grind Player), если MSE не поддерживается.
I'mпытается остановить воспроизведение видео тега, когда пользователь переключается на другую вкладку или другую программу.Прочитав некоторые ответы на подобные вопросы, я использовал следующий код:
function PauseVideo() {
if (isFlashPlayerUsed) {
var isPlaying = player.getPlaying();
AddLog("player.playing: " + isPlaying);
if (isPlaying)
player.pause();
}
else {
AddLog("player.paused: " + player.paused);
if (!player.paused)
player.pause();
}
}
$(window).on("blur", function (e) {
AddLog("window.blur fired.");
PauseVideo();
});
$(window).on("focusout", function (e) {
AddLog("window.focusout fired.");
PauseVideo();
});
$(document).on("visibilityChange", function (e) {
AddLog("document.visibilityChange fired.");
if (document.visibilityState == "hidden")
PauseVideo();
});
Однако я обнаружил, что в Internet Explorer 11 в Windows 7 используется Flash-версия проигрывателя, и при щелчке по файлу запускается window.blur.ничего, кроме самого плеера, даже если он находится на той же странице, но не срабатывает, если плейер находится в фокусе, и я щелкнул другую программу.
Как убедиться, что видео всегда останавливается, когда окно или вкладка теряютсяфокус, даже если используется флэш-версия плеера?