使用VUE开发的一个H5的活动页面,客户要求放一个背景音乐。背景音乐可以在安卓系统下自动播放,IOS系统里面只有点击播放后才可以播放,这是什么原因造成的,有什么解决方法码?
代码如下:
<script> //APP.VUE export default { globalData:{ innerAudioContext:null }, onLaunch: function() { console.log('App Launch') this.innerAudioContext = uni.createInnerAudioContext(); this.innerAudioContext.autoplay = true;//自动播放 this.innerAudioContext.loop = true; //循环播放 }, onShow: function() { console.log('App Show') }, onHide: function() { console.log('App Hide') } } </script> <style> /*每个页面公共css */ </style>
页面代码:
onLoad() { // this.$api('api/vlol/setsession.aspx', {}, 'get').then(res => { // }) app.innerAudioContext.src = '../../static/demo.mp3'; app.innerAudioContext.onPlay() this.getAddress() },
最佳解决方案
使用微信的jssdk,
app.vue:
globalData:{
innerAudioContext:null
},
onLaunch: function() {
console.log('App Launch')
this.innerAudioContext = uni.createInnerAudioContext();
this.innerAudioContext.autoplay = true;//自动播放
this.innerAudioContext.loop = true; //循环播放
this.innerAudioContext.onPlay(() => {
console.log('开始播放');
});
this.innerAudioContext.onError((res) => {
console.log(res.errMsg);
console.log(res.errCode);
});
},
页面内:
var jweixin = require('jweixin-module') //npm安装的引用
jweixin.config({
// 配置信息, 即使不正确也能使用 wx.ready
debug: false,
appId: '',
timestamp: 1,
nonceStr: '',
signature: '',
jsApiList: [],
info:{}
});
jweixin.ready(function() {
app.innerAudioContext.play();
});
app.innerAudioContext.src = '../../static/demo.mp3';