对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代码如下:
结论:通过以上设置就可以在android和ios下自动播放音频了。亲测可用$(function(){ $('#shakingAudio').play(); document.addEventListener('WeixinJSBridgeReady',function(){ $('#shakingAudio').play(); },false); });
以下方法,亲测不行
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(); });