问题描述:
用 uni.createInnerAudioContext()
创建的语音消息,在部分 ios 机型上播放没有声音
问题分析:
该手机开启了静音模式
问题解决:
对此问题,微信提供了如下解决方式,从 2.3.0 版本开始支持
canIUseWxAudio() {
const version = wx.getSystemInfoSync().SDKVersion;
if (this.compareVersion(version, '2.3.0') >= 0) {
wx.setInnerAudioOption({
obeyMuteSwitch: false
})
} else {
wx.showModal({
title: '提示',
content: '当前微信版本过低,手机开启静音模式下可能会导致播放音频失败。'
})
}
},
/**
* 比较wx SDKVersion
* @param {String} v1 版本字符串
* @param {String} v2 版本字符串
* @returns {Number} v1>v2,返回1;v1<v2,返回-1;v1==v2,返回0
*/
compareVersion(v1, v2) {
v1 = v1.split('.');
v2 = v2.split('.');
const len = Math.max(v1.length, v2.length);
while (v1.length < len) {
v1.push('0');
}
while (v2.length < len) {
v2.push('0');
}
for (let i = 0; i < len; i++) {
const num1 = parseInt(v1[i]);
const num2 = parseInt(v2[i]);
if (num1 > num2) {
return 1;
}
if (num1 < num2) {
return -1;
}
}
return 0;
}