recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Pourquoi faut-il cliquer sur l'audio HTML5 lors de la lecture dans WeChat avant de pouvoir le contrôler avec .play().pause()?

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梦2771 Il y a quelques jours600

répondre à tous(1)je répondrai

  • 阿神

    阿神2017-05-19 10:16:23

    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.

    répondre
    0
  • Annulerrépondre