Pause html5 video when user switches tab

瘦欲@ 提交于 2019-12-23 00:43:11

问题


I have an HTML5 video embedded on my webpage:

<video id="myvideo">
    <source src="videos/myvideo.mp4">
</video>

And I have a bit of jQuery to pause the video when the user goes to a different browser window or tab. And also to play the video when the user returns:

// pause when the user leaves this window/tab
$(window).blur(function(){
    $('#myvideo').get(0).pause();
});

// play when the user returns to this window/tab
$(window).focus(function(){
    $('#myvideo').get(0).play();
});

The problem with this is that will also pause the video if the user clicks on the location bar or focuses on a different OS window, even though the video is visible and the user hasn't switched tabs.

Is there a way to pause/play the video based on whether the current tab is open (but not necessarily focused)?


回答1:


I found the answer almost immediately after posting the question. The Page Visibility API allows you to know when a webpage is visible or in focus. There's a nice jQuery shim called jquery-visibility that provides a clean API for a cross-browser solution. Using it you can do something like:

$(document).on('show.visibility', function() {
    $('#myvideo').get(0).play();
});
$(document).on('hide.visibility', function() {
    $('#myvideo').get(0).pause();
});


来源:https://stackoverflow.com/questions/28033359/pause-html5-video-when-user-switches-tab

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!