天天看点

js微信h5页面背景音乐

微信H5页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
    <title>Document</title>
</head>
<body>
    <style>
        .music{
            position: absolute;
            top: 0.5rem;
            right: 0.3rem;
            width: 0.8rem;
            height: 0.8rem;
        }
        .music_stop{
            display: none;
        }
        #audio,#status{
            opacity: 0;
            position: absolute;
            top: 0.5rem;
            right: 0.3rem;
            z-index: 999;
            height: 0.8rem;
            display: block;
            width: 0.8rem;
        }
    </style>
    <body>
        <audio id='audio' autoplay="autoplay" src='http://go.163.com/2018/0209/mengniu/audio/bgm.mp3' loop></audio>
        <button id='status' onclick='triggerBgMusic()'></button>
        <img src="https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=3321905628,1991297823&fm=26&gp=0.jpg" class="music music_start">
        <img src="https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=444902375,1933902914&fm=26&gp=0.jpg" class="music music_stop">
    </body>
    <script>
        //----------页面初始化------------
        var audio = document.getElementById('audio');
        if (sessionStorage.bgmusic == 'pause') {
            playBgMusic(false);
        } else {
            playBgMusic(true);
            //----------处理自动播放------------
            //--创建页面监听,等待微信端页面加载完毕 触发音频播放
            document.addEventListener('DOMContentLoaded', function () {
                function audioAutoPlay() {
                    playBgMusic(true);
                    document.addEventListener("WeixinJSBridgeReady", function () {
                        playBgMusic(true);
                    }, false);
                }
                audioAutoPlay();
            });
            //--创建触摸监听,当浏览器打开页面时,触摸屏幕触发事件,进行音频播放
            function audioAutoPlay() {
                playBgMusic(true);
                document.removeEventListener('touchstart', audioAutoPlay);
            }
            document.addEventListener('touchstart', audioAutoPlay);
        }
        //----------处理页面激活------------
        var hiddenProperty = 'hidden' in document ? 'hidden' :
            'webkitHidden' in document ? 'webkitHidden' :
                'mozHidden' in document ? 'mozHidden' :
                    null;
        var visibilityChangeEvent = hiddenProperty.replace(/hidden/i, 'visibilitychange');
        var onVisibilityChange = function () {
            if (!document[hiddenProperty]) {
                if (!sessionStorage.bgmusic || sessionStorage.bgmusic == 'play') {
                    audio.play();
                }
            } else {
                audio.pause();
            }
        }
        document.addEventListener(visibilityChangeEvent, onVisibilityChange);
        //---------背景音乐开关----------
        function triggerBgMusic() {
            if (!sessionStorage.bgmusic || sessionStorage.bgmusic == 'play') {
                playBgMusic(false);
            } else {
                playBgMusic(true);
            }
        }
        //---------音乐播放和暂停----------
        function playBgMusic(val) {
            if (val) {
                audio.play();
                sessionStorage.bgmusic = 'play';
                document.getElementById('status').innerHTML = '正在播放';
                $(".music_stop").css("display","none")
                $(".music_start").css("display","block")
            } else {
                audio.pause();
                sessionStorage.bgmusic = 'pause';
                document.getElementById('status').innerHTML = '停止播放了';
                $(".music_start").css("display","none")
                $(".music_stop").css("display","block")
            }
        }
    </script>
    
</body>
</html>