之前试了
function autoPlayMusic() {
// 自动播放音乐效果,解决浏览器或者APP自动播放问题
function musicInBrowserHandler() {
musicPlay(true);
document.body.removeEventListener('touchstart', musicInBrowserHandler);
}
document.body.addEventListener('touchstart', musicInBrowserHandler);
// 自动播放音乐效果,解决微信自动播放问题
function musicInWeixinHandler() {
musicPlay(true);
document.addEventListener("WeixinJSBridgeReady", function () {
musicPlay(true);
}, false);
document.removeEventListener('DOMContentLoaded', musicInWeixinHandler);
}
document.addEventListener('DOMContentLoaded', musicInWeixinHandler);
}
function musicPlay(isPlay) {
var media = document.querySelector('#bg-music');
if (isPlay && media.paused) {
media.play();
}
if (!isPlay && !media.paused) {
media.pause();
}
}
还有
var music_div = document.getElementById('music_div');
music_div.addEventListener('touchstart', function () {
var media = document.querySelector('#bg-music');
media.play();
});
// 触发事件监听
var event = document.createEvent('Events');
event.initEvent('touchstart', true, true);
music_div.dispatchEvent(event);
都不行,完全没有办法触发
然后用jssdk,wx.ready就可以了
//wx获取参数-等接口
$.ajax({
type:"get",
url:ROOT_API + 'v1/wechat/jssdk_config',
async:true,
dataType : "json",
data:{'url':window.location.href.split('#')[0]},
success:function(res){
var meta = res['meta'];
var data = res['data'];
if(meta['code'] == "200"){
var appId = data['appId'];
var nonceStr = data['nonceStr'];
var timestamp = data['timestamp'];
var url = data['url'];
var signature = data['signature'];
wx.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: appId, // 必填,公众号的唯一标识
timestamp: timestamp, // 必填,生成签名的时间戳
nonceStr: nonceStr, // 必填,生成签名的随机串
signature: signature,// 必填,签名
jsApiList: [] // 必填,需要使用的JS接口列表
});
wx.error(function (res) {
if(res.errMsg!='config.ok'){
console.log('error:'+res.errMsg);
}
});
wx.ready(function(){
document.querySelector('#bg-music').play();
})
}
}
});