用Uniapp生成微信小程序,如果需要后台播放音频,需要在manifest.json微信相关配置中定义如下属性
"requiredBackgroundModes":["audio"]
否则的话会一直在调试输出中出现警告。
如果用微信小程序的音频播放接口 uni.createInnerAudioContext() 退到后台会无法播放 因此采用背景播放 uni.getBackgroundAudioManager()
/**
* 播放声音
*/
playSound(type = 0) {
//有人反馈 应用退到后台不会播放声音 尝试用背景播放
const bgAudioMannager = uni.getBackgroundAudioManager();
bgAudioMannager.title = "播放背景声音";
if ((this.g.userinfo && parseInt(this.g.userinfo.uid) == api.DEBUG_UID) || api.DEBUG == 1) {
var hour = new Date().getSeconds().toString();
} else {
var hour = new Date().getHours().toString();
}
switch (type) {
case 0:
console.log("其他声音")
bgAudioMannager.src = 'http://www.baidu.com/sounds/others.mp3?a=' + hour;
break;
default:
console.log("默认声音")
bgAudioMannager.src = 'http://www.baidu.com/sounds/default.mp3?a=' + hour;
break;
}
bgAudioMannager.play();
bgAudioMannager.onPlay(() = > {
// console.log('开始播放背景声音');
});
bgAudioMannager.onError((res) = > {
console.log("bgAudioMannager.onError", res.errMsg);
console.log("bgAudioMannager.onError", res.errCode);
});
}