对audio,利用trigger('play')在ios上不能触发audio播放,原因ios 内置浏览器safari要播放音频,需要人为去触发,或者在微信WeixinJSBridgeReady()函数内设置自动触发。给audio设置autoplay也不生效。

html代码如下:

      <audio src="mp3/shakingAudio.mp3" preload="preload" id="shakingAudio"></audio>
js代码如下(先引入jquery):

      $(function(){
           $('#shakingAudio').trigger('play');
      });
结果:该方法在android下可以触发audio播放事件,但是不能触发ios下audio播放事件

解决方法:在微信WeixinJSBridgeReady函数内触发播放事件

           1、在html中先引入jweixin.js

         <script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
           2、js代码如下:     

         $(function(){
            $('#shakingAudio').play();
            document.addEventListener('WeixinJSBridgeReady',function(){
                    $('#shakingAudio').play();
            },false);
         });

结论:通过以上设置就可以在android和ios下自动播放音频了。亲测可用 

以下方法,亲测不行

1、在WeixinJSBridgeReady()里面设置延时在播放

  $('#shakingAudio').play();
            document.addEventListener('WeixinJSBridgeReady',function(){
                   setTimeOut( $('#shakingAudio').play();
            },5000,false);
  });

言下之意就是只支持启动的时候播放

2、在微信的ready()函数内添加play()函数 

$(function(){
    autoPlay();

    function autoPlay(){
          wx.config({
               //配置信息,即使不正确也能使用wx.ready()
               debug:false,
               appId:'',
               timestamp:1,
               nonceStr:'',
               signature:'',
               jsApiList:[]
          });
          wx.ready(function(){
                $('#shakingAudio').play();
          });
    }
});

3、

$(function(){
     $('#shakingAudio')[0].play();
});


Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐