H5的新标签audio支持在网页上插入一段音频,可以通过autoplay属性来控制音乐是否自动播放,但ios系统为了保护用户流量不流失,限制了该属性。即在ios上无法通过该属性来控制音乐自动播放。不仅如此,任何的JS触发都无法生效,除非用户主动交互。
如果公司大部分的业务都在微信端,那么是可以解决自动播放问题的,IOS浏览器端暂时没有办法解决,但可以降级操作,具体降级方案是:当用户第一次触摸屏幕时,调用play()方法。
IOS微信端的解决方案:
通过调用微信的SDK来调用play()方法,具体代码如下:
/*
引入微信SDK
*/
<script scr='jweixin-1.2.0.js'></script>
/*
控制音乐播放
*/
<script>
var audio = document.getElementById(id);
document.addEventListener("WeixinJSBridgeReady", function () {
audio.play();
}, false);
</script>
在vue框架中的写法(打包配置中已经注入了微信sdk的情况):
<script>
/*
控制音乐播放
*/
var self = this;
require(['wx'], function(wx) {
wx.config({
debug: false,
appId: 'wxcf5f821eb9af21a5',
timestamp: '',
nonceStr: '',
signature: ''
});
wx.ready(function() {
self.weixin_muisc();
});
});
weixin_muisc() {
var audioPlayer = document.getElementById('muisc');
audioPlayer.play();
$('.muisc_ico')
.addClass('muisc_ani')
.removeClass('muisc_stop');
},
</script>
这样就可以实现ios系统下微信端H5音乐的自动播放了
网友评论