对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();
});