cari

Rumah  >  Soal Jawab  >  teks badan

javascript - Mengapakah audio html5 perlu diklik pada mainan dalam WeChat sebelum ia boleh dikawal dengan .play().pause()?

Kod berikut bertujuan untuk membenarkan halaman meluncur ke julat tertentu dalam WeChat untuk memainkan audio tertentu
Masalah yang dihadapi pada masa ini ialah audio tidak dimainkan apabila halaman meluncur, tetapi selagi setiap audio diklik untuk dimainkan. dan kemudian dijeda, ia boleh dimainkan dengan meluncur. Boleh saya bertanya mengapa ini kod yang tidak ditulis dengan selamat?


    <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 hari yang lalu601

membalas semua(1)saya akan balas

  • 阿神

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

    Anda boleh cuba menggantikan acara yang dipantau dengan touchmove.
    Dalam sesetengah terminal mudah alih, terutamanya ios, audio tidak boleh dimainkan secara automatik tanpa interaksi pengguna atau mempunyai js untuk mengawal main balik secara langsung. Ini adalah had sistem.

    balas
    0
  • Batalbalas