開發過程中遇到ios上部分機型播放沒有聲音的問題,發現這種情況只會在手機靜音模式上出現。經查看文檔發現微信提供瞭解決方法:
設置obeyMuteSwitch爲false就可以解決該問題。 要注意做兼容性處理。版本對比採用以下方法,不能直接用字符串比較
// 版本對比 兼容
const compareVersion = function(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
} else if (num1 < num2) {
return -1
}
}
return 0
}
const version = wx.getSystemInfoSync().SDKVersion;
if (util.compareVersion(version, '2.3.0') >= 0) {
wx.setInnerAudioOption({
obeyMuteSwitch: false
})
}else{
wx.showModal({
title: '提示',
content: '當前微信版本過低,靜音模式下可能會導致播放音頻失敗。'
})
}