javascript - Pourquoi faut-il cliquer sur l'audio HTML5 lors de la lecture dans WeChat avant de pouvoir le contrôler avec .play().pause()?
过去多啦不再A梦
过去多啦不再A梦 2017-05-19 10:14:23
0
1
557

Le code suivant est destiné à permettre à la page de glisser vers une plage spécifique dans WeChat pour lire un audio spécifique.
Le problème actuellement rencontré est que l'audio n'est pas lu lorsque la page glisse, mais tant que l'on clique sur chaque audio pour le lire. puis mis en pause, il peut être joué en glissant. Puis-je demander pourquoi ? Quel morceau de code n'est pas écrit en toute sécurité ?


    <audio id="a1" src="http://mat1.gtimg.com/ln/images/mp3/11.mp3" loop controls  preload="load"></audio>
    <audio id="a2" src="http://mat1.gtimg.com/ln/images/mp3/22.mp3" loop controls  preload="load"></audio>

    <p class="wrap" id="wp">
        <p class="audio2"></p> <img src="http://img1.gtimg.com/ln/pics/hv1/133/63/2205/143396323.jpg" alt="" width="100%"> </p>
    <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
    <script>
        function autoPlayAudio1() {
            wx.config({
                // 配置信息, 即使不正确也能使用 wx.ready
                debug: false
                , appId: ''
                , timestamp: 1
                , nonceStr: ''
                , signature: ''
                , jsApiList: []
            });
            wx.ready(function () {
                var mp3 = document.getElementById('bgmusic')
                    , a1 = document.getElementById('a1')
                    , a2 = document.getElementById('a2');
                //a1.play();
                console.log('ok')
                $(window).scroll(function () {
                    var x = $('.audio2').offset().top - $(window).scrollTop();
                    console.log(x)
                    if (x < 4500 && x > 4000) {
                        a1.play();
                        a2.pause();
                    }
                    else if (x < 4000 && x > 3500) {
                        a2.play();
                        a1.pause();
                    }
                });
            });
        }
        autoPlayAudio1();
    </script>
过去多啦不再A梦
过去多啦不再A梦

répondre à tous(1)
阿神

Vous pouvez essayer de remplacer l'événement surveillé par touchmove.
Dans certains terminaux mobiles, en particulier iOS, l'audio ne peut pas être lu automatiquement sans interaction de l'utilisateur ou avoir js pour contrôler directement la lecture. Il s'agit d'une limitation du système.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal