解决方法:promise
1
2
3
4
5
6
7
8
9
|
audio.load()
let playPromise = audio.play()
if (playPromise !== undefined) {
playPromise.then(() => {
audio.play()
}).catch(()=> {
})
}
|
缘由:异步
从Chrome50开始,对<video>或<audio>元素的play()调用返回一个Promise。 一个异步返回单个结果的函数。若是回放成功,Promise就会实现,而play事件也会同时触发,对应执行.then。 若是回放失败,Promise将被拒绝,同时会有一个错误消息解释失败,对应执行.catch。 错误发生的过程为:ide