<!--全局 audio -->
<audio
id="audio"
@playing="audioReady"
@timeupdate="audioUpdateTime"
@pause="audioPaused"
@ended="audioEnd"
@error="audioError"/>
// 监听微信端页面加载 触发音频load
document.addEventListener('DOMContentLoaded', () => {
const audio = document.getElementById('audio')
audio.load()
document.addEventListener('WeixinJSBridgeReady', () => {
audio.load()
}, false)
})
audioUpdateTime(e) { // 更新时间和进度条 (默认一秒会执行多次 需要处理一秒只执行一次更新) let time = 0 if (parseInt(e.target.currentTime) !== Number(time)) { time = parseInt(e.target.currentTime) const audio = document.getElementById('audio') const timeRanges = audio.buffered // 获取已缓存的时间 timeRanges.end(timeRanges.length - 1)
// 计算百分比 展示进度
parseInt(timeRanges.end(timeRanges.length - 1) * 100 / audio.duration * 100) / 100)
}