小程序退出后音乐还会播放解决方法

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