<script>
var hidden = "hidden";
//各个浏览器属性兼容
if (hidden in document)
document.addEventListener("visibilitychange", onchange);
else if ((hidden = "mozHidden") in document)
document.addEventListener("mozvisibilitychange", onchange);
else if ((hidden = "webkitHidden") in document)
document.addEventListener("webkitvisibilitychange", onchange);
else if ((hidden = "msHidden") in document)
document.addEventListener("msvisibilitychange", onchange);
else if ("onfocusin" in document)
document.onfocusin = document.onfocusout = onchange;
else
window.onpageshow = window.onpagehide = window.onfocus = window.onblur = onchange;
function onchange(evt) {
if (document[hidden]) {
$('#audio').removeClass('play');
document.getElementById("bgm").pause();
// document.title = "false";
} else {
// alert('显示');
setTimeout(function () {
$('#audio').addClass('play');
document.getElementById("bgm").play();
// document.title = "true";
},100);
}
}
</script>
我也遇到了这个问题,ios下关闭小程序还会继续播放视频(其实你下滑状态栏可以看到有视频播放,不关闭会一直播放的),最后用了浏览器的visibilitychange 解决了(后台时暂停播放),具体代码如下。
var hiddenProperty ='hidden' in document ?'hidden' :
'webkitHidden' in document ?'webkitHidden' :
'mozHidden' in document ?'mozHidden' :
null;
if (hiddenProperty) {
var visibilityChangeEvent = hiddenProperty.replace(/hidden/i,'visibilitychange');
var onVisibilityChange =function() {
if (document[hiddenProperty]) {
!MpMovie.video.paused && MpMovie.video.pause();
}
};
document.addEventListener(visibilityChangeEvent, onVisibilityChange);