不用 Audio 标签实现音频播放

通常想要播放音频第一思路是写一个 audio 标签,实际上单纯 JS 不插入标签也是可以实现的。这种方式只能是 audio video 则没有提供此类 api。

具体实现:

const instance = new Audio()
instance.crossOrigin = '*'
instance.oncanplaythrough = () => {
  instance.play()
}
instance.onended = () => {
// 播放结束触发,自定义播放按钮重置
}
instance.src = audioUrl
instance.load()

创建的 audio 自带一个 preload="audo" 的属性,指示浏览器预加载音频资源