当网页失去焦点时,如何确保播放器的Flash版本暂停?

时间:2018-10-05 04:53:47

标签: javascript flash

我建立了一个页面来在大多数平台上播放HLS内容,默认情况下使用HTML5视频+ HLS.js,如果不支持MSE,则回退到播放器(Grind Player)的Flash版本。

当用户切换到另一个标签或另一个程序时,我正在尝试停止播放视频标签。阅读类似问题的一些答案后,我使用下面的代码:

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();
});

但是,我发现在Windows 7的Internet Explorer 11中,使用了Flash版本的Player,并且即使我在同一页面中单击了播放器本身,也单击了window.blur会触发该事件,但是播放器聚焦,我单击了另一个程序。

即使使用Flash播放器版本,如何确保在窗口或选项卡失去焦点时视频始终会暂停?

0 个答案:

没有答案