canplay的事件很重要,只有在canplay事件里面才知道录音文件的总时长,但移动端微信,ios的audio无法触发canplay事件,
下面是整理和试验网上看到过的靠谱的解决方案
1.ios是因为ios需要触发load才会开始预加载
加入类似下面这样代码就可以解决
const audioPlayer = document.getElementById('audioPlayer');
audioPlayer.preload = true;
audioPlayer.load()
2.微信下就算是按上面写了也不会触发
加入类似下面这样代码就可以解决
document.addEventListener(
"WeixinJSBridgeReady", () => {
//audioPlayer.play();
audioPlayer.defaultMuted = true;
audioPlayer.preload = true;
audioPlayer.pause();
},
false
);