解決方法: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